Data protection system

ABSTRACT

The present invention provides systems and methods for logically organizing data for storage and recovery on a data storage medium using a multi-level format. The present invention also provides systems and methods for protecting data stored on data storage medium so that the data may be recovered without errors.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. application Ser. No.11/139,806, entitled “DATA PROTECTION SYSTEM,” filed on May 31, 2005,which claims the benefit of U.S. Provisional Application No. 60/576,381,entitled “A MULTI-LEVEL FORMAT FOR INFORMATION STORAGE,” filed Jun. 3,2004. The entire disclosure and contents of the above patents andapplications are hereby incorporated by reference.

BACKGROUND

1. Field of the Invention

The present invention relates to formats for information storagesystems.

2. Related Art

All storage devices require a method for protecting and organizing dataso that the correct data can reliably be retrieved as desired from ahost system. The definition for doing this is referred to as the logicalformat.

Holographic storage presents many new challenges for the development ofa logical format that haven't been dealt with before in other storagetechnologies. In holographic data storage, the basic unit of storage isa data image which is a 2 dimensional array of light and dark pixelswith light pixels usually representing 1's and dark pixels usuallyrepresenting 0's. This image is recorded into the media as 3Dinterference patterns that can be reconstructed during readout. An imagecan have thousands or millions of information symbols. This contrastsdrastically with current conventional storage technologies that storeand read back data a few symbols at a time either magnetically oroptically. These devices may read data back in parallel on multipletracks, but at most, only a few or 10s of symbols at a time.

For holographic data storage, recordings are interference patternsbetween a data beam and reference beam which are captured in some kindof holographic medium. The act of reading requires an incident beam thatis a recreation of the reference beam to illuminate the recorded area.This reconstructs an image of the original written image. Some types ofmedia have an issue where exposure to light prior to data recording usesup some or all of the medium's dynamic range, rendering recordingdifficult to impossible. A key feature of this logical format is itsability to ensure that unexposed areas of the medium are not exposedprior to recording.

Since the configuration of holographic data is radically different thanthe way it is stored in current storage technologies, there exists aneed for a logical format for holographic storage that is able toprotect the data to ensure the reliability and that is able to organizethe data so that the correct data can be addressed and read back.

SUMMARY

According to a first broad aspect of the present invention, there isprovided a system for storing data comprising: a data storage medium;and data pages organized as chapters on the data storage medium.

According to a second broad aspect of the present invention, there isprovided a method for storing data comprising the following steps: (a)mapping logical blocks of data into chapters; and (b) storing the dataas data pages on a data storage medium, wherein step (a) is performedprior to step (b).

According to a third broad aspect of the present invention, there isprovided a system for storing data comprising: a data storage medium;and a plurality of partitions on the data storage medium, wherein datain two or more of the partitions have different density levels and/ordata types.

According to a fourth broad aspect of the present invention, there isprovided a system for storing data comprising: a data storage medium;and a plurality of partitions on the data storage medium, wherein two ormore of the partitions have data that have different protection levels.

According to a fifth broad aspect of the present invention, there isprovided a system for storing data comprising: a data storage medium;and a plurality of partitions on the data storage medium, wherein two ormore of the partitions have data that is written in different recordingmodes.

According to a sixth broad aspect of the present invention, there isprovided a system for storing data comprising: a data storage medium;data stored on the data storage medium; and a library map data structurethat describes data type, the format levels, and media type for readingdata from and writing data to the data storage medium.

According to a seventh broad aspect of the present invention, there isprovided a system comprising: a data storage medium; reading rules forreading data from a data from the data storage medium; writing rules forwriting data to the data storage medium; organizing rules for organizingthe data stored on the data storage medium; and locating rules forlocating the data on the data storage medium, wherein the reading rules,writing, organizing rules and locating rules are format generationdependent.

According to a eighth broad aspect of the present invention, there isprovided a system for storing data comprising: data stored as data pageson a data storage medium; and error correction means for recovering oneor more of the data pages.

According to an ninth broad aspect of the present invention, there isprovided a method for storing data comprising the following steps: (a)providing data stored as data pages on a data storage medium; and (b)recovering one or more of the data pages when one or more of the datapages is corrupted or missing.

According to a tenth broad aspect of the present invention, there isprovided a method for storing data comprising the steps of: (a)providing data stored as data books on a data storage medium; and (b)recovering one or more of the data books when one or more of the databooks is corrupted or missing.

According to a eleventh broad aspect of the present invention, there isprovided a system for storing data comprising: a data storage medium;and a plurality of partitions on the data storage medium, wherein two ormore of the partitions have data that have different types of errorcorrection codes and/or different amounts of redundancy.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be described in conjunction with the accompanyingdrawings, in which:

FIG. 1 is a schematic diagram illustrating a top level format hierarchyin accordance with one embodiment of the present invention;

FIG. 2 is a schematic diagram illustrating four recording modes, asviewed from the top of a data storage medium, in accordance with thepresent invention;

FIG. 3 is a schematic side view of a book in accordance with oneembodiment of the present invention;

FIG. 4 is a schematic view of the composition of a logical format inaccordance with one embodiment of the present invention;

FIG. 5 is a schematic diagram illustrating a sparse anthology inaccordance with one embodiment of the present invention;

FIG. 6 is a schematic diagram illustrating a polytopic anthology inaccordance with one embodiment of the present invention;

FIG. 7 is a schematic diagram showing an example layout of books writtenin 0x80 mode in accordance with one embodiment of the present invention;

FIG. 8 is a schematic diagram showing an example layout of books writtenin 0x82 mode, a robust low density mode, in accordance with oneembodiment of the present invention;

FIG. 9 is a schematic diagram showing an example layout of books writtenin 0x82 mode, a non-overlapped, full density mode, in accordance withone embodiment of the present invention;

FIG. 10 is a schematic diagram showing an example layout of bookswritten in 0x84 mode, a 1 dimensional polytopic mode, in accordance withone embodiment of the present invention;

FIG. 11 is a schematic diagram showing an example layout of bookswritten in 0x85 mode, a 2 dimensional polytopic mode, in accordance withone embodiment of the present invention;

FIG. 12 shows respective tables for 1-dimensional polytopic book writeordering and for 2-dimensional polytopic book write ordering inaccordance with embodiments of the present invention;

FIG. 13 shows a single-session user data layout for short session and asingle-session user data layout for a long session in accordance withone embodiment of the present invention;

FIG. 14 is a diagram showing an example of the assembly of a chapter ofuser data assembled from host logical blocks in accordance with oneembodiment of the present invention;

FIG. 15 is a diagram showing an example of chapter ECC in accordancewith one embodiment of the present invention;

FIG. 16 is an image of a full page format in accordance with oneembodiment of the present invention;

FIG. 17 is a skeleton image of a page format in accordance with oneembodiment of the present invention;

FIG. 18 is a diagram showing a page tile layout in accordance with oneembodiment of the present invention;

FIG. 19 is a diagram showing a tile format in accordance with oneembodiment of the present invention;

FIG. 20 is a diagram showing a reserved block format in accordance withone embodiment of the present invention;

FIG. 21 is a diagram showing the beginning of a first write session fordigital storage medium in accordance with one embodiment of the presentinvention;

FIG. 22 is a diagram showing data written for first session of FIG. 21;

FIG. 23 is a diagram showing the medium of FIGS. 21 and 22 as acompleted, multi-session disk.; and

FIG. 24 is a diagram showing a replicated ROM in a card format filledwith data in accordance with one embodiment of the present invention.

DETAILED DESCRIPTION

It is advantageous to define several terms before describing theinvention. It should be appreciated that the following definitions areused throughout this application.

Definitions

Where the definition of terms departs from the commonly used meaning ofthe term, applicant intends to utilize the definitions provided below,unless specifically indicated.

For the purposes of the present invention, the term “anthology” refersto a sequential group of chapters that span multiple books and that areECC protected. This level of ECC is provided to protect against mediadefects or damage that occurs after writing. An anthology is chapterbased and can consist of a multiplicity of chapters, depending upon theformat. For example, for Reed-Solomon coding may be used. The number ofuser data chapters versus redundant chapters is variable based on dataprotection, type of ECC, and overhead requirements. The presence of ECCprotection allows for the recovery of one or more chapters/books in thecase that a chapter/book is damaged after the chapter/book is written oris written in an area of the medium with a defect or is writtenimperfectly.

For the purposes of the present invention, the term “bad mapping” refersto the prevention of writing of data to a bad area of the data storagemedium. Bad areas can be the result of manufacturing defects or dust,damage, or light exposure after production. Using any algorithm deemedcapable of detecting medium defects, the medium may be scanned duringmanufacturing time, at format time, or both, to determine the defectiveareas. A special partition in the medium is then written to log thedefective areas by physical address so that they may be skipped duringmedium writes. As the medium is written, the drive will record thisinformation in a defined area or partition containing the defect map sothat it will be known during reads that the bad areas do not containdata. Also, through the use of Anthology recovery or some otheralgorithm, written data may be detected as bad or deteriorating. Thisdata may be relocated somewhere else on the medium and the relocationaddresses recorded in the bad map partition so that the data recoveryreliability may be improved. Due to the way data is organized andwritten to the media, bad mapping is done on a book basis. Bad mappingmay occur both prior to or after data is written to a data storagemedium. Therefore, bad mapping may be used for data that has gone badafter it is written if it is reconstructed, copied somewhere else, andthat bad area is marked as bad.

For the purposes of the present invention, the term “book” or “databook” refers to a stack of pages recorded in the same, or nearly thesame, physical location on a data storage medium. Each time the data ismoved to a new location relative to the write head, a new book iswritten. Books are located using track and book addresses for disk mediaand x and y addresses for rectangular media. A book may contain 1 ormore pages and/or sections and/or chapters. Chapters and sections mayspan between books.

For the purposes of the present invention, the term “bookcase” refers tothe smallest amount of data that can be written in a single,non-appendable write session. The term bookcase is a physical constructas well as a logical construct. Due to the dynamics of holography,appends of new write sessions must currently be done in fresh media.Thus, in the case of overlapping bookshelves, some bookshelves areskipped in order to start a new write session. A full write session withnon-overlapping bookshelves at both the start and finish is called abookcase. A bookcase is analogous to a write session in other storagetechnologies. A bookcase is the smallest amount of data that can bewritten within a specific time period called a write session. A bookcaseconsists of 1 or more bookshelves that are adjacent to each other oroverlapping. In a holographic storage device, the medium within the areaof a bookcase is fully cured. A bookcase also contains a card catalogstructure, which is a map of the usage of every book in the bookcase.The card catalog includes information about how full each book is, ifthe book contains data or not, what kind of data it contains, and thestarting chapter and logical block numbers for books that contain data.This, combined with the chapter directory, provides the drive with amethod for searching out specific chapters and logical blocks when theyare requested through a read command. A bookcase is also the smallestunit of data that may be erased when using rewritable media. A bookcasemay contain data that is overlapped along a bookshelf as well as betweenbookshelves. This recording method is referred to as 2 dimensional,polytopic recording.

For the purposes of the present invention, the term “bookshelf” refersto a group of book locations that are arranged in order on a digitalstorage medium. For card format media, books in a bookshelf are in arow. For disk format media, the books of a bookshelf can be arrangedaround a circle or a partial radius. A full or partial row or circle ofbooks is called a bookshelf. The circle of books on a disk is alsocommonly referred to as a track. Depending on the format, books may ormay not be overlapped in the horizontal direction in a bookshelf.Bookshelves are more of a physical construct than a logical constructfor holographic storage device. The logic format of the presentinvention does not directly depend on the arrangement or geometry of abookshelf. In a holographic storage medium, a bookshelf is a track orpartial track, for a disk-shaped medium, or a row or partial row for arectangular-shaped medium, of books recorded at full density and cured.Full density may include overlapping books at high density as describedin U.S. Pat. Nos. 6,735,002 and 6,614,566, the entire contents anddisclosures of which are hereby incorporated by reference. Cured meansthat all or substantially all of the medium in the bookshelf has beenreacted, as prescribed by the media technology in use, and there is noappreciable dynamic range available to write additional holograms.

For the purposes of the present invention, the term “card catalog”refers to data for each partition that describes the location of theinformation within the partition. It provides a sparse mapping of thebooks, chapters, and logical block locations within a partition.

For the purposes of the present invention, the term “chapter” refers toa variable length of contiguous pages of user data followed by avariable length of redundant, ECC pages. A chapter may be any size andmay cross book boundaries. A chapter provides protection for missingpages and also provides the mapping between host based logical blocksand user data within the chapter. The use of chapters also allows therecovery of pages that can't be found or have too many errors to berecovered. The amount of redundancy may be adjusted to provide avariable amount of protection for lost pages within the chapterdepending upon data type. For example, 1 page may be regenerated forevery page of redundancy provided. Additional redundancy can also beprovided for critical data such as library map and card cataloginformation. The logical block to chapter mapping is provided through astructure found at the end of a chapter called the “Chapter Directory”or CD. The chapter directory provides a mapping of the logical blocksand their sizes within and across chapter boundaries. The chapterdirectory also provides copyright and security information that preventsunauthorized access to the data in the chapter. A chapter may includeECC protection. Chapters have no specific relation to books and achapter may be larger or smaller than a book. Also, chapters may crossbook boundaries.

For the purposes of the present invention, the term “format generationdependent rule” refers to a rule that may be altered based on the formatgeneration of a data storage system.

For the purposes of the present invention, the term “computer system”refers to any type of computer system that implements software includingan individual computer such as a personal computer, mainframe computer,mini-computer, etc. In addition computer system refers to any type ofnetwork of computers, such as a network of computers in a business, theInternet, personal data assistant (PDA), devices such as a cell phone, atelevision, a videogame console, a compressed audio or video player suchas an MP3 player, a DVD player, a microwave oven, et.

For the purposes of the present invention, the term “data page” or“page” refers to a unit of holographic data that is written to aholographic storage medium. For example, a data page may be a 1280×768array of pixels that are either on or off or partially on or off (graylevels). A page may have a well-defined structure that may be changed tosupport different array sizes, encoding, and recovery techniques. Thecomponents of the page format include a layout, header, data areas andtiling, data modulation and ECC coding and interleaving, randomization,etc. The layout defines where the different components in the pagereside including the header and data areas. For example, a data page mayhave areas that are split up into 32×32 pixel tiles with fixed patternsin the center 8×8 section of the tile. The data for a data page may beencoded with an Error Correction Code (ECC) into multiple long codewordscalled paragraphs. These paragraphs are interleaved in the data areas sothat a single paragraph is spread across the entire page. In addition,the data may be randomized and, potentially, modulated prior to ECCand/or placement on the page. The page header provides the physicaladdress of the page as well as the position of the page within achapter. Suitable page interleaving schemes include bit interleavedcodewords or any other method of spatially mixing the bits fromdifferent codewords across the page so that bits in each codeword arefound in normally good and bad parts of a data page. The size of a pagemay be governed by the spatial light modulator and detector used in aholographic storage device. The page content may vary based on theformat type or revision.

For the purposes of the present invention, the term “data storagemedium” or “data storage device” refers to any medium or media on whicha data may be stored for use by a computer system. Examples of datastorage media include floppy disks, Zip™ disks, CD-ROM, CD-R, CD-RW,DVD, DVD-R, flash memory, hard disks, optical disks, etc. Two or moredata storage media acting similarly to a single data storage medium maybe referred to as a “data storage medium” for the purposes of thepresent invention.

For the purposes of the present invention, the term “data storagedevice” refers to a data storage medium and any firmware, hardware,software components, and optical components associated with a datastorage medium. For most purposes, the terms “data storage medium” and“data storage device” may be used interchangeably with respect to thepresent invention.

For the purposes of the present invention, the term “removable datastorage device” refers to any data storage device that may be removedfrom a computer system or to a data storage device that includes a datastorage medium that can be removed from the data storage device.Examples of removable data storage devices include data storage devicessuch as: WORM drives, tape drives, ZIP™ drives, DVD drive, CD-ROMdrives, flash memory cards, etc.

For the purposes of the present invention, the term “drive” refers to adevice for reading from, writing to, or erasing a data storage medium. Adata storage medium may be part of a drive, such as a hard disk drive ormay be inserted in a drive, such as a drive for reading optical diskssuch as CDs, DVDs, a holographic storage disk, etc.

For the purposes of the present invention, the term “format generation”refers to a rule set that fully describes the system, media type, formatlevels, and media management scheme used when reading from, writing to,or erasing a data storage medium. A “rule” or “set of rules” defineprocedures or algorithms for performing various functions. Any rule setmay change for different format generations. The concept of formatgenerations provides the extensibility and compatibility checking acrossfamilies of products and markets as mentioned in the claims. The formatgeneration can be thought of as a reference key defining how a specificdrive type can read and write a specific media type. A format generationdefines the media management method used for writing including the usageof partitions, bookcases, anthologies, books, sections, chapters, andpages. It also defines the revisions of the library map, partitiondescriptor (PD), card catalog (CC), chapter directory (CD), and pageformat (PF). In addition, the format generation defines the system andmedia formulation and geometry and what versions of them are compatiblewith the specified format generation. Thus, each time a feature is addedat any level or new systems or media types and formulations areintroduced, one or more new format generations are defined to describethem. For example, a different type of ECC may be used at the anthologylevel in different format generations. The use of format generationsprovides a the mechanism that allows the logical format to easily evolveand take advantage of new technologies, developments, algorithms, andmarket requirements while still maintaining a linkage and compatibilitymapping across widely varying holographic storage product families andmarkets. The format generation data structure may also provide adefinition of the types of data content that are allowed in each of thedata pages.

For the purposes of the present invention, the term “holographic storagemedium” refers to a data storage medium in which holographic data arestored or in which holographic data are capable of being stored. Forexamples of holographic storage media and methods for writing to,reading, and erasing holographic storage media suitable for the purposesof the present invention are described in U.S. Pat. Nos. 6,482,551;6,650,447; 6,695,213; 6,697,180; 6,700,686; 6,721,076; 6,735,002;6,743,552; 6,765,061; 6,780,546; 6,788,443; and 6,798,547; and in U.S.Published Application Nos. 2003-0206320 and 2004-0027625, the entiredisclosures and contents of which are hereby incorporated by reference.

For the purposes of the present invention, the term “holographic storagedevice” refers to a holographic storage medium and any firmware,hardware, software components, and optical components associated with aholographic data storage medium. For most purposes, the terms“holographic storage medium” and “holographic storage device” may beused interchangeably with respect to the present invention.

For the purposes of the present invention, the term “library map” refersto a data structure that describes the location and types of partitionson a data storage medium and the types of data that the partitionscontain. In the logical format of the present invention, the library mapis the starting point for reading and writing the media and is the firststructure that must be read by the drive to ensure that no unwrittenareas of the medium are read. The library map may be located at aspecific address on the medium (requiring no auxiliary memory) or, itcan be located in an auxiliary memory, (such as flash or RFID), that isincluded in the cartridge assembly. The first part of the library mapmay reside in an RFID memory that points to a full version of thelibrary map on the medium. Although current RFID options range in sizefrom 128 bytes to 4 Kbytes, these sizes should not be considered to belimiting for the purposes of the present invention. In many cases, thereare at least 2 current copies of the library map written to medium aswell as previous copies to allow robust recovery of the library map.There also may be multiple versions of the library map as new features,media types and formats are supported. The library map includesinformation about the format generation, media type, geometry, thesystem type it was written with, and the medium status: empty,formatted, appendable, write protected, full. In addition, eachpartition descriptor is appended to the library map to provide a fullmapping of the media. Optionally, card catalogs may also be includedwith the library map. Both the library map and the partition descriptorsmay have copy protection and security keys to control and limit accessto an entire data storage medium or by partition. In one embodiment ofthe present invention, different partitions of a data storage medium mayhave different security levels.

For the purposes of the present invention, the term “logical block”refers to the standard data unit transferred between a host and moststorage devices. Logical blocks are grouped together within the userportion of chapters and written as a group. The format supports multiplelogical block sizes as well as variable logical blocks. It can evensupport different logical block sizes on the same medium. Logical blocksmay cross chapter boundaries and may be smaller or larger than pages orchapters. The chapter directory structure within the chapters keepstrack of the location and size of the logical blocks. As for nearly allother storage devices types, logical blocks are addressed sequentiallyfrom 0 to N within a user data partition or logical grouping of userdata partitions. If the medium is split into multiple partitionsrepresenting multiple logical volumes, the logical block addressing maybe restarted for each logical volume.

For the purposes of the present invention, the term “mapping” refers tothe definition of the start location, end location, and size or lengthof any logical construct that can be embedded within another constructat a different level of the format.

For the purposes of the present invention, the term “partition” refersto a contiguous, self-contained subdivision in a data storage medium inwhich is described by its recording mode and data content, all of whichis written in the same format and at the same density. In one embodimentof the present invention, a partition is also the smallest unit of datathat can support the emulation of different storage device types. In oneembodiment of the present invention, a holographic storage medium maycontain many different partitions. A holographic storage medium may have1 or more partitions and multiple partitions may be spliced together tomake larger logical partitions. Partitions may contain user data or datathat is used internally to a holographic storage device. Examples ofpartition types are: library map, user data, media data, manufacturingdata, bad media mapping, and calibration data. A partition may contain 1or more bookcases or write sessions. It also allows a data storagemedium to act and look like multiple volumes of media. Partitions alsoallow different data types to be written with different densities andredundancy so that more important data, such as a library map, may bewritten in a more robust manner than other types of data. Each partitionis defined by a partition descriptor structure that is located withinthe library map. The partition descriptor provides information on thestart and end book addresses of the partition, the data type and writingmode used, whether the partition is empty, appendable, or full, whatchapters and logical block addresses have been written to it, and how tofind the card catalog structures describing the data within thepartition. Partitions may also be defined to support emulation of otherstorage device types. Emulation partitions allow the host to treat thedrive as a different storage device type in order to allow it to becompatible with more host software applications. In some cases, there isan emulation table located at the end of the partition to support thisemulation. In addition, partitions may be linked together to createlonger, virtual partitions containing the same types of information.When linked, the partition types must be compatible and the chapter andlogical block numbering continue from the end of one partition to thestart of the next. Although not all partition types will require cardcatalogs, some partitions do require card catalogs to allow chapters andlogical blocks to be located within the partition.

For the purposes of the present invention, the term “read after write”refers to using an algorithm to detect the presence or quality ofwritten data. If, during the read after write process, the drivedetermines that a recently written page is, or may be, bad, the logicalformat of the present invention allows that data to be rewritten at oneor more new physical addresses until it is satisfied that a good pagehas been written. During reading, the drive can manage discovery of arewritten page by noting its chapter number and position and only return1 good version of that page of data.

For the purposes of the present invention, the term “reading data”refers to retrieving data stored, as holographic or non-holographicrepresentations, from an article of the present invention.

For the purposes of the present invention, the term “revision” refers toa number identifying the format and contents of the associatedstructure. In one embodiment of the present invention, the revision maybe placed in a fixed location near the start of the construct so thatthe drive may determine if it can read the structure and, if it can, howit should read the structure. This is the method for forward andbackward compatibility of each format level.

For the purposes of the present invention, the term “section” refers toa group of pages within a book that are recorded with the samemultiplexing technology. Multiplexing is the holographic term forwriting multiple holograms or pages through the volume of the media atthe same location. There are multiple holographic multiplexingtechniques including angle, wavelength, correlation, peristrophic,shift, etc. It is possible to mix multiple multiplexing techniqueswithin a book. Chapters may cross section boundaries.

For the purposes of the present invention, the term “security level”refers to providing different users with access to different data on thesame data storage medium through the use of a security key or othermeans. Some users may be able to access an entire data storage mediumwhile other users may only be able to access one or more partitions of adata storage medium.

For the purposes of the present invention, the terms “writing data” or“recording data” refer to the well known concept of storing data on adata recording medium. With respect to holographic storage media,writing data may refer to storing holographic representations of one ormore pages as patterns of varying refractive index in on the holographicstorage medium.

For the purposes of the present invention, the term “erasing data”refers to making the index of refraction of the medium uniform so thatthe area of media that has been erased may be recorded again.

For the purposes of the present invention, the term “polytopic” refersto a method of recording books of holograms that are spatiallyoverlapped. The spacing between books is at least the beam waist, whichis the narrowest part of the signal beam. An aperture is placed in thesystem at the beam waist. During readout, all of the overlappedholograms at a given multiplexing angle are read out, but only thehologram that is centered in the aperture is passed through to thereadout optics. Examples of polytopic recording techniques that may beused in various embodiments of the present invention are described inU.S. Published Patent Application. No. 2004-0179251, entitled “Polytopicmultiplex holography,” and U.S. Published Patent Application No.2005-0036182, entitled “Methods for implementing page based holographicROM recording and reading,” the entire contents and disclosure of whichare hereby incorporated by reference.

For the purposes of the present invention, the term “high density” whenreferring to the recording of a book means that a book contains themaximum number of pages for the given format generation, system, andmedia formulation. These holograms may be written with the loweststrength possible to make them recoverable allowing more pages to bewritten in the same book location.

For the purposes of the present invention, the term “low density” whenreferring to the recording of a book means that fewer than the maximumnumber of pages are written in that book for the given formatgeneration, system, and media formulation. These holograms may bewritten for a longer exposure time to increase their readout strength.These holograms also may be spaced further apart in the hook based onthe multiplexing technique used. For example, using angularmultiplexing, the angular spacing may be increased to minimize crosstalkbetween the pages. The end result of these techniques is to improve thesystem's ability to recover pages written at low density.

For the purposes of the present invention, the term “recording mode”refers to the method used for writing pages in a book and for locatingbooks on the medium. The parameters controlled by the recording modeinclude the number of pages per book, the written strength of each pagein the book, and their angular spacing within the book. Recording modealso defines the multiplexing method used such as angle, spatial,correlation, shift, or other means to separate hologram pages.Additionally, the recording mode defines the spacing between books andtheir organization within a specific area of the medium. In oneembodiment of the present invention, the recording mode appliesthroughout a partition.

For the purposes of the present invention, the term “forward errorcorrection” or “FEC” refers to any error correction code that is used toencode the original data with some amount of redundancy such that if thedata has errors when read back, the original data can be reconstructed.The FEC has a specified correction power such that it can correct errorsin the original data as long as the number of errors in the recovereddata is below the FEC's required correction threshold or the recovereddata's SNR is above the FEC's required threshold. Examples of FECsinclude Reed-Solomon, BCH, Hamming, Turbo Convolutional, Turbo Product,and Low Density Parity Check. The term FEC is not limited to these codesand includes any combination of FEC codes and any other codes, includingcodes not listed above.

For the purposes of the present invention, the term “skip sorting”refers to a specific order of writing layers of books such that eachbook is recorded over an area that is uniformly exposed. This applies toany recording mode employing overlapped or polytopic book recording. Asan example, the first layer of books must be written in non-overlappedlocations, the second layer of books can only be written where the fullbooks have only 1 layer of books under them, and so on until the toplayer of books is recorded. This requires some algorithm for writingbooks which skips back and forth in both the radial and theta (or x andy) directions to achieve polytopic layering, but never recording overmedia that has an exposure discontinuity in it. Further examples of thisare provided in the patent description.

Description

Although the logical format of the present invention may be used withvarious types of storage devices, the logical format of the presentinvention has many particular advantages when used with holographicstorage devices.

Holographic storage is an optical technology that differs greatly fromother optical technologies, as well as magnetic technologies, in thatwith holographic storage data is written and read in parallel i.e. manybits at a time. The amount of holographic data written at a time canvary depending on format and product type. Conventional high capacitystorage devices write and read data serially. Some variations write andread data in parallel, but that is somewhat artificial because it isdone by duplication of serial read/write heads and channels.

The basic unit of storage in a holographic drive is a data page. Data iswritten to the media using a SLM (Spatial Light Modulator). A SLM issimilar to a miniature television screen or computer monitor and is amulti-pixel display that illuminates a full image into the media. This“image” of data is the storage object with each pixel of the SLMcorresponding to approximately a single bit of information. A laserilluminates the SLM, encoding the data onto a light beam and, when mixedwith a reference beam, the complex interference pattern forming theholograph is recorded into the media. For readout, the reference beamilluminates at the same location that the hologram was recorded at andan image of the data page, virtually identical to the original imagewritten with the SLM, is reconstructed. The reconstruction is capturedon a miniature detector or camera as the original written image. Sincepages are multi-pixel, each time a page is read or written, a largenumber of data bits (for example >50,000) are stored or recovered.

Many holograms can be stored in the same volume of media. Different datapages may be selected within the volume by slightly changing somephysical parameter. The simplest strategies involve using the Braggeffect to define addresses for the recorded holograms. Due to the finitethickness of the media, a well-defined constructive interferencecondition exists for the holograms stored. Hologram addresses can bedefined by modifying the reference beam angle, or wavelength, orposition of the media relative to the beams, between writing exposures.In addition, the data can be moved to an entirely new spatial location.These addressing strategies are called multiplexing approaches and allowdifferent holograms written in the same, or nearly the same volume to beindependently recovered. The end result is a stack of individual pagesall written in the same volume of the media. Multiplexing methods canalso be combined to record even more holograms in the same space (up tothe limit of the medium).

Holograms may be formed by chemical reactions in photopolymer mediatriggered by light causing the media to polymerize leading to a spatialvariation of the index of refraction. An important aspect to writingholograms in photosensitive media is the curing process. A stable stackof good quality holograms that don't change over time requires that allof the photosensitive elements in the media have been reacted andpolymerized. A location of the medium that has no remaining unreactedcomponents, called writing monomer, is deemed “cured”. In theory, if thefull dynamic range of the medium is used by all of the holograms in alocation, there should be no remaining unreacted monomer so, in theory,the book should be cured just by filling it up. The act of curing issimply exposing the book to the correct wavelength of light for enoughtime to use up the remaining monomer or dynamic range. Erasing may bedone by exposing the medium to a certain wavelength that is ideallydifferent than one used to record. However, erasing can also be doneusing the same wavelength as used to record. Any medium that can recordindex changes in a volume can be used. Other media examples includephotorefractive and photochromic media. This invention is not limited tophotopolymer media.

In one embodiment, the logical format of the present invention allows aholographic storage device to operate in a manner similar to a standardstorage device from the perspective of a host, while addressing theunique requirements of holographic data storage.

The present invention also provides a logical format system forholographic storage that is compatible with standard physicalinterfaces, data organization, and command sets used for storagedevices. The present invention also provides logical format forholographic storage that allows straightforward integration ofholographic drives into the vast existing infrastructure of softwareapplications, systems, interfaces, and libraries already developed forstorage devices.

The logical format system of the present invention is capable ofsupporting different holographic media types (ROM, Write-Once, andRe-writable) and is extensible so that the logical format system is ableto supports future technologies that improve data density, codingefficiency, performance and specialized features such as compression,watermarking, encryption, security, and copy protection.

Prior to the present invention, no comprehensive logical format for aholographic data storage device has been developed. In some embodimentsof the present invention, components, methods and algorithms have beenadopted from other storage and non-storage technologies. These methodsand algorithms have been combined with new methods and algorithms in anew way to produce a new comprehensive logical format system thatprovides both data protection and organization for holographic datastorage.

The logical format system of the present invention may be used with avariety of: media specifications, formulation, packaging, or geometry;drive read, write, alignment and recovery processes; optical systemdesigns including components, beam paths and size, power, and wavefrontspecifications; physical writing areas and servo and optical tolerancesfor write, readback, and interchange; and physical usage of the mediaincluding guard bands, servo patterns, and media motion techniques.

In one embodiment, the present invention provides a method for logicallyorganizing data for storage and recovery on a holographic medium using amulti-level logical format. Logical blocks are used as the unit of dataexchange between the host and the system making the holographic storagedevice compatible with industry standard applications and storagesystems since this is the method used by the vast majority of existingstorage devices and systems currently deployed. This method alsoprovides a logical format that is compatible with a wide range of filesystems for different storage device types and applications.Furthermore, the logical format allows the drive to detect the drivetype of the initial writing and to automatically take on thatcharacteristic for further writes and reads. The logical format usesmultiple levels to hide the lower level format and special algorithmsrequired to store data on holographic media. This allows the drive toeasily integrate with current storage application software and driversand also allows it to emulate other storage device types so that it canintegrate into many applications with little or no change. The logicalformat provides compatibility with standard storage physical interfacesand command sets, including support of block level transfers as is donefor common storage devices. Unlike other storage technologies, thelogical format of the present invention decouples both the size andlocation the block structure used by the interface from the datastructures written to the medium. This decoupling makes it easier for aholographic drive to adapt to many different host and file systemrequirements and to emulate many types of existing storage devices.

In one embodiment the present invention provides a logical format thatallows for the flexibility to change the drive interface, command set,and host data transfer characteristics without impacting lower levels ofthe format. The ability to mix multiple writing modes and densities onthe same medium allow the logical format to provide different levels ofdata protection based on the data type. This is referred to as thepartition level of the logical format. Partitions provide methods forstoring special data as well that may or may not be accessible to theuser. Examples of such special data include calibration information,firmware updates, media manufacturing information, test areas that thedrive can use for write testing and calibration, etc. A test area isused to test the drive's ability to write media before allowing the userdata to be written. The drive may write some test data and then adjustboth write and read parameters based on the test data written.]

There may be multiple user data partitions on the same data storagemedium that are not linked. Such partitions are treated by the host asdifferent virtual volumes. Extensions to the command set beyond what istypically supported for MO and DVD type drives may be provided to allowthe host to browse and select among partitions. The definition of apartition is split into 2 major components. The first component is therecording mode and the second is the content type. Different recordingmodes and content types may be mixed as needed for any given formatgeneration.

The logical format of the present invention allows for multiple virtualvolumes on a single medium. This functionality is provided at thepartition level of the logical format. The logical format of the presentinvention also supports data compression and encryption.

The chapter level structure provides for variable size and allowsmultiple logical blocks to be stored in the structure. Conversely, forsmaller chapters and larger logical blocks, a logical block may span 1or more chapters. A construct called the “chapter directory” providesthe mapping of logical blocks to chapters and includes support formultiple sizes of fixed size logical blocks as well as variable sizedlogical blocks. This is an important vehicle for decoupling the logicalblock interface from the physical data format recorded on the datastorage medium.

In one embodiment, the present invention provides a method for mappingchapters into and across books and recovering the chapter sizes andlocations via the combination of a card catalog structure and pageheaders. Chapters are numbered sequentially as they are written on themedium. The card catalog structure provides either a sparse or detailedmapping between physical addresses (i.e. page locations) and chapterlocations and logical block addresses, thereby providing the drive witha good estimate of where a chapter with the intended logical block(s)may reside. When read, the page header provides detailed information ofthe chapter size and location, and page characteristics (modulation anddecoding information).

In one embodiment, the present invention provides a method for acquiringdetailed location information for chapters and logical block locationson newly inserted medium that has been written in the past. Due to thelarge potential capacities on the medium, it may not always be feasibleto keep a detailed mapping of all chapters and logical blocks. Thelogical format of the present invention provides a method for the driveto learn about the location and mapping of chapters and logical blocksas it is read, incrementally improving random seek accuracy and accesstime.

In one embodiment, the present invention provides a method forvalidating chapter and page location on the medium via a page headerstructure. The page header provides chapter number, size, location, andverification of physical address. This information is used for chapterseeking, recovery, and calibration of page and book locations on themedium.

In one embodiment, the present invention provides methods for protectingdata stored on holographic medium so that the data may be recoveredwithout errors. The present invention provides a method for detecting,recovering, and correcting errors on recovered data pages. This methodmay include modulation coding, write and read equalization, page levelerror correction code (ECC), feedback and predictive alignment andexposure compensation, and other data recovery techniques. The pagelevel ECC may be multi-level and be defined as any type of ECC fromstandard Reed-Solomon techniques to more elaborate parity check,trellis, and convolutional codes to more powerful or efficient codes yetto be invented.

In one embodiment, the present invention provides a method forrecovering or reconstructing missing or badly corrupted data pages. Inthis method the chapter level of the format uses redundant pages and anysuitable type of ECC. As chapters are collections of sequential pages,their length may be adjusted based on the level of protection needed fora given format/medium/data type.

In one embodiment, the present invention provides a method forrecovering or reconstructing data written in defective areas of themedium or books of data pages that have been damaged via a scratch,dust, etc. This method employs an anthology level of the format usedduring writing, to protect data books via wide ranging ECC. Theredundant data is written per the format generation definition, but onlyread if needed for reconstruction. The anthology is also defined to havevariable overhead to trade off protection versus efficiency.

The present invention has the flexibility to allow changes in ECC typeand overhead at different levels of the format as needed for differentmedia types, writing densities, and application based data reliabilityrequirements. The present invention also is able to support formattingand bad area mapping on the medium to avoid writing in defective areasin order to improve the data protection. In addition the presentinvention provides support for potential read after write algorithms tovalidate writings and to improve the quality of the written data.

In one embodiment, the present invention provides systems for writingdata to and reading data from a holographic storage medium thataccommodate the special needs of holographic storage. A method may beemployed for determining the state of the medium when the medium isloaded into a drive. The state includes whether it has been written ornot and, if it has been written, where it has been written and how muchdata it contains. This method prevents the drive from exposing unwrittenareas of the media such as described in U.S. Published PatentApplication No. 2004-0194151, entitled, “Supplemental memory havingmedia directory”, the entire contents and disclosure of which is herebyincorporated by reference.

In one embodiment, the present invention provides a method for ensuringthat no unexposed areas of the medium are read. In another embodiment,the present invention provides a method for finding the library map thatis independent of medium and drive type so that the drive can determineif the drive is compatible with the type of medium inserted into thedrive before attempting to access the medium. In another embodiment, thepresent invention also provides a method for protecting and reliablyrecovering the library map structure. In another embodiment, the presentinvention provides a method for closing sessions on the medium in areliable way so that it is left in a stable state for reading from themedium and provides a clean transition to unused areas for furtherappend operations. In another embodiment the present invention providesa method for reliably finishing media that is fully written or ready tobe archived for long-term stability and storage of the written data. Inanother embodiment, the present invention provides a method for reliablyerasing data without affecting other data stored elsewhere on themedium.

The multi-level logical format of the present invention providesadvantages for holographic data storage, by allowing for future advancesto be integrated easily. For example, the multi-level structure of thelogical format allows many changes to be localized to 1 or 2 levels ofthe format definition. The format definition may provide a well-definedversioning system at every level so that drive systems using the logicalformat can recognize changes and compatibility issues with written andunwritten media caused by technology and format improvements. Such aversioning system provides backward compatibility and allows significantchanges at any level to be made without major impacts to the overallsystem design.

In one embodiment, the present invention provides a method forsupporting multiple physical formats and densities. Such a method may beused to determine drive/media compatibility across multiple generationsand types of media and drives. Such determinations allow for backwardread and write compatibility as well as detecting incompatibility ofmedia with a particular drive. Such a method also supports physicaladvancements in media, optics, servo, and encoding, for example, toimprove density and performance without impacting the logical formatstructure.

In one embodiment, the present invention provides a method that allowsfor multiple addressing and servo schemes to be used so that the logicalformat can support future density improvements without a change in thestructure of the logical format.

The logical format of the present invention also has the ability tosupport extensions for content protection, copy protection, digitalrights management, and data security as needed by market, application,and customer.

In one embodiment, the present invention provides a logical formatemploying format generations that each contain the full definition ofthe contents, revision, and usage of a specific format version. A formatgeneration system using such format generations provides a mechanismthat may be used to provide a consistent access method for varioussystem/media combinations. Such a format generation system allows olderdrives to recognize newer media and provides a method for determiningmedia/drive compatibility for both forward and backward generations ofmedia and drives. A format generation of the present invention may begiven a specific index number referencing a full, documented formatusage definition. The definition includes revisions for all of the dataconstructs at each format level (library map, partition structure, cardcatalog, chapter directory, page format) and their specific field usageas it applies to the specific format generation. It also defines therules for media management including write ordering, partition andsession management, appending rules, and physical addressing. Othercomponents of the format generation include definition of theload/unload process, usage of the anthology and other optionalconstructs, definitions of the types of partitions and data contentallowed, and the usage of extended algorithms and constructs such as badmapping, write session management and recovery, read after write,caching, compression, and other future feature additions. The algorithmfor finding the format generation associated with written media may be awell-defined sequence of accessing the first few bytes of a library mapwhich contains the format generation identification. This method may becommon among many drive and media types so that a wide variety of driveand media types may gracefully determine their compatibility. Once theformat generation ID is accessed, there may be significant deviations inmedia and format usage as defined in the specific format generation. Ifthe drive doesn't support a specific format generation, the drive maydetermine that fact internally and gracefully fail to read the medium.

The logical format of the present invention may be used with variousmedia types, physical formats, products, and applications. The logicalformat of the present invention is flexible and extensible.

The logical format of the present invention encompasses the organizationand protection of data stored on various types of data storage media andall of the mechanisms for organizing and recovering the data. Onefeature of the logical format is the ability to provide a standardmethod of transforming the information to be stored from a formatcommonly used by host systems or other data sources to the formatrequired to write the data to the media. The logical format also defineswhere on the media the data is written. The logical format of thepresent invention may be used with various command sets and filesystems.

The fact that the logical format of the present invention allows thephysical format of data storage and the drive interface used to storedata to be treated independently provides many advantages. For example,the logical format of the present invention reduces requirements on ahost to know about the physical make-Lip of a holographic storagedevice. Using the logical format, a host may treat a holographic storagedevice as a streaming or block data device. Because a holographicstorage device employing the logical format may be treated as astreaming or block data device, it is much easier to provide support forthe holographic storage device using existing host software and driverswith minimal changes. The logical format also allows for variablephysical features in the recording format e.g. if a section's capacityis reduced due to read after write requests by the host or write lags,thereby causing write schedule adjustments, the logical makeup of thedata at the drive interface does not have to be altered to fit thechanges. In addition, the logical format simplifies defect management,because bad data areas may be mapped out without host knowledge. Also,the logical format allows four mismatches in host and physical blocksizes e.g. the host may be designed to work optimally with 10 k filesizes while a holographic storage device is optimized to write 5-10 MBat a time or more. The logical format also allows for easy densitymigration. The logical format may hide changes in number of images persection, number of sections per book, number of pixels per pages, numberof symbols per pixel, media size and geometry, etc. from the hostinterface.

In one embodiment, the logical format defines the following: how astream of data from the host is received by a data storage medium, howthe host data are formatted prior to writing to a data storage medium,where the data is written on a data storage medium, partitioning andusage for a data storage medium, and how the written data may be foundon a data storage medium and transformed back into the format requiredby the host as requested.

The logical format of the present invention may be used with variouspage reading and writing processes, including location and alignmenttolerances for pages and books. The logical format of the presentinvention may be used with various media sizes, media geometry, opticalsystems, media construction, media performance specifications andtolerances. The logical format of the present invention may be used withmedia having various usage areas, guard bands and servo patterns. Thelogical format of the present invention may be used with various opticalsystem specifications, including spot size, diffraction efficiency,hologram uniformity and quality, reference and object beamspecifications, and other related specifications.

The logical format of the present invention is flexible and extensibleand may be used with different physical formats. The logical formatallows reuse of some of the different system components at differentlevels of the architecture with little or no changes between productsand applications.

In one embodiment, the logical format is layered so that improvements,enhancements, or optimizations at any level may be implemented withoutimpacting the other layers of the design and format.

In one embodiment, the logical format hides the holographic portion ofthe data format from the user interface. An advantage of hiding theholographic portion of the data format from the user interface is thatlower levels of the logical format may be changed out as advances aremade without impacting the host interface. It also makes the hostsoftware and drivers much simpler and easier to write.

In one embodiment, the logical format presents a standard interfacetypical of storage devices. For example, the SCSI command set usinglogical block transfers is a common thread throughout most of the datastorage industry and in one embodiment, the logical format may bedesigned so that a holographic storage device looks similar toconventional SCSI storage devices from a host perspective. By usingexpanded command support, the logical format may allow a holographicstorage device to emulate other storage technologies.

In one embodiment, the logical format of the present invention providesa single location or progression of locations to be searched todetermine the media type and format for a newly loaded media, includingthe characteristics or high level information of: media type, status,and format. In one embodiment, the progression does not change for agiven media geometry or drive family so that compatibilitydeterminations may be made based on this high level information. Thishighest level structure of the logical format is the library map.

The library map is robust and well protected, and may be redundant. Thelibrary map provides support for multiple physical formats and densitiesto allow the library to more easily adapt to new inventions andbreakthroughs for capacity improvement, such as sparse recording vs.polytopic.

In one embodiment, the library map allows for different media addressingschemes including servo encoder feedback and patterned substrateaddressing. The library map is sufficiently flexible to allow differentmedia types and geometries, as well as being able to support industrystandard file systems for removable media. The library map provides theability to add content protection and security extensions. The design ofthe library maps may provide for a way to extend the logical format inmany different ways including density increases, support of differentmedia types, ability to write and read special information (e.g.non-user data) to the media, ability to support and recognize multiplephysical formats, ability to add copy protection, and security features,compression, etc. The library map may provide flexibility for supportingerror correction and recovery with adjustable redundancy at multiplelevels of the format, thereby allowing system trade-offs to be madebetween capacity, transfer rate, and latency.

The library map of the present invention is not specific to opticalwrite once media. The library map of the present invention may work forany removable media. The library map may support rewritable, WORM, orROM media. The library map may provide a method for validating media andmapping out bad areas. The library map may allow mixing of multiplephysical format types (mostly density) on the same media i.e. sparse vs.polytopic areas. The library map may allow multiple, virtual volumesupport i.e. make the media look like multiple separate disks or cards.The library map may allow media to be read or rejected based on formatswithout having large redesign efforts that impact multiple layers of thephysical and logical format. The library map, at the logical interfacelevel, may allow the flexibility to support multiple drive personalityand format types. The library format may support industry standard filesystems for storage device types that can be emulated such as tape. Forrewritable holographic media, the library format may be able to supportindustry standard file systems, at the logical interface level, forrewritable optical and magnetic storage devices such as DVD+/−RW, MO,HDD.

For a logical format for a holographic storage the device, multiplelayers of data abstraction and transformation occur between the hostinterface and the physical data on the media. As the data moves closerto the host and goes through more layers of abstraction, the logicalformat and data handling become less dependent on the underlyingtechnology. The data also becomes more flexible in how the data ishandled and the library map may begin to emulate existing storagetechnology.

In one embodiment, the logical format of the present invention allows aholographic storage device host interface to look as similar as possibleto conventional storage devices without compromising the performance andfeatures of holographic storage. The host interface may be based onlogical blocks. The holographic storage device may support multiplesizes of fixed logical blocks and, if desired, it may support variablelogical block sizes.

FIG. 1 shows the relationship of a library map 102 to three partitions:partition 1, partition 2, and partition 3 labeled 104, 106 and 108respectively. FIG. 1 also provides a view of an example of datapartition written in write sessions WS1, WS2, and WS3, with cardcatalogs CC1, CC2 and CC3, and bookcase borders 132. In addition, andpartition may contain a drive emulation table referenced as DE.

FIG. 1 shows an example of a hierarchy and how library map 102 definesand points to different numbers and types of partitions. In this figure,partition 1 is a multi-session, user data partition, partition 2 is asingle session user data partition, and partition 3 is a fixeddefinition internal data partition.

The functioning of a library map, partitions, and card catalogs will bedescribed in more detail below.

As can be seen in FIG. 1, the top level of the logical format of thepresent invention is the library map 102. The library map 102 providesthe full view of the following information: the medium type, the makeupof the medium, the format generation in which the medium is written,location of the major partitions in the medium, and what type ofinformation those partitions contain. Using the above information, adrive may determine if the drive can read the medium or not and if so,what rules and algorithms the drive needs to use to read the medium.Since the library map 102 contains the information on partitionlocations and states, the library map 102 is updated each time themedium is written to.

When the medium is removable, the library map 102 is the first structureread when a medium is inserted into a drive. The library map 102 is atone or more fixed or known locations so that the drive can find thelibrary map 102 during the medium loading process. The library map 102may be redundant, since it will be difficult, if not impossible to use amedium if the library map 102 cannot be found and read.

The library map is the only structure in the logical format with a fixedlocation and a semi-fixed format. The first part of the library map isfixed so that it is both backward and forward compatible. This allowsall drives to read the first part of the library map to determine itscompatibility with the written media. If it is not compatible, it maygracefully fail to read the media. If it is compatible, it can thenproceed to read the rest of the library map which can change in contentand format depending on its version. All of the remaining lower levelformat structures are variable to allow for format extensibility.

The library map may reside in more than one place. The primary, fixedlocation of the library map may be dependent on drive and medium typeand medium geometry. For example in one embodiment of the presentinvention, a library map may be stored in an RFID memory chip that ispart of a holographic storage device. In another embodiment of thepresent invention, a part of a library map may be stored in an RFIDmemory chip along with one or more pointers to the remainder of thelibrary map contents stored in a holographic storage medium of aholographic storage device. In this embodiment, the part of the librarymap stored in the RFID memory chip is the “primary library map” and thepart of the library map stored on the holographic storage medium is the“medium-based library map.” In another embodiment of the presentinvention, the library map may also be a file on the hard disk drive ofa host and the library map may be downloaded from the hard disk drivewhen a holographic storage medium is inserted in a computer system. Inholographic storage device.

In another embodiment, the library map may reside on one or more fixedbook addresses of a holographic storage medium. In this embodiment, thelibrary map may be written in sparse mode (i.e. non-overlapped) sincethe library map will generally not fill up 1 book location.

The information included in the library map may include the library maprevision to allow extensions to be added to the library map structure.The library map may also include information about the medium type,including such information as the geometry, formulation, densitysupport, write/once vs. rewritable, book addressing strategy (patternedvs. encoder), write schedule, book size and spacing, number of pages perbook, etc. This information may be complete enough to determineread/write compatibility and to allow a drive into which a holographicstorage medium is inserted to know how to address, access, and readlocations on the media. This information may be encoded as formatgeneration IDs and/or indexes into firmware lookup tables to save memoryspace.

The library map may also include information about format generationthat helps describe all layers of the format being implemented. Thelibrary map may also include information about the medium status, suchas whether the medium is full, write protected, secure, empty,formatted, appendable, non-appendable, etc. The library map may alsoinclude information about the volume ID which is unique to every pieceof media. The library map may also include drive information andstatistics such as the drive serial number, R/W cycles, time the mediawas in the drive for each drive that it was inserted into, etc.

The library map may also include information about partitiondescriptors. There is one partition descriptor for each partition on adata storage medium and each partition descriptor may contain: apartition start/end address, a partition type that described the type ofdata the partition contains; the time of the last partition update, thestatus of the partition i.e. whether the partition is empty, appendable,full, write protected, etc., the next appendable address, the mostrecent card catalog address for the partition, the partition writeformat type i.e. whether the partition write format type is sparse,overlapped/polytopic, etc., the partition data type i.e. whether thedata is user data, a library map, etc., a pointer to a linked partitionthat may be used if a partition fills up and a larger, virtual partitionis desired, a starting chapter number and logical block address for thepartition, and CRC protection to ensure that the library map has beenread correctly.

The recordable portion of a data storage medium used with the logicalformat of the present invention may be divided up into partitions. Someof the partitions may be for user data and some partitions may be forinternal drive usage and may not be accessible by the user except byspecial command.

In the logical format of the present invention, the sizes and locationsof partitions may be variable and may be defined by the library map. Thevariability of the size and locations of partitions makes the logicalformat very flexible and new partition types may be added as needed toextend the format. In the logical format of the present invention,partition locations are physically separated from each other and eachstart and end on bookcase boundaries. In other words, there may not beoverlapping books across partition boundaries. However, it is possibleto split up existing, unused or unfinished partitions into multiple newpartitions. The flexibility of the partitions allow for very shortpartitions that may contain special drive information like library mapsand bad map tables, and very long partitions containing user data.

Each partition type is characterized by two attributes: the recordingmode and the data content. Some types of content, such as user data, maybe written in different recording modes depending on the formatgeneration and use model.

FIG. 2 shows an overview of the three modes of the present invention:sparse mode, 1D dense mode and 2D dense mode. Diagram 212 illustratestwo recording modes: sparse mode and robust low density mode. Diagram214 illustrates 1D dense mode. Diagram 216 illustrates 2D dense mode. Indiagram 212 books 222 are arranged in a bookshelf 228 so that books 222do not overlap. In diagram 214 books 242 overlap books 244 along thedirection, indicated by double-headed arrow 246 of a bookshelf 248. Indiagram 216; hooks 262 overlap books 264 in the direction, indicated bydouble-headed arrow 266, of a bookshelf 268; books 272 overlap books 274in the direction, indicated by double-headed arrow 276, of a bookshelf278; and books 282 overlap books 284 in the direction, indicated bydouble-headed arrow 286, of a bookshelf 288. In addition, bookshelf 278overlaps bookshelf 268 and bookshelf 288 in a direction indicated by adouble-headed arrow 290 to form a bookcase 292.

In FIG. 2, for clarity in diagram 214, each book 242 is shownoverlapping two books 244 so that each book 242 overlaps half thediameter of two books 244. However, the density of overlap may begreater in some embodiments of the present invention. For example, eachbook 242 could overlap 75% of the diameter of one book 244 and 25% ofthe diameter of an adjacent book 244. Also, in one embodiment of thepresent invention, all of the books in a lower layer are written tobefore the next layer above is written to so that the data storagemedium is exposed uniformly. In addition, although for simplicity onlytwo layers are shown in diagram 214, many overlapping layers may be partof a given bookshelf.

In FIG. 2, for clarity in diagram 216, each book 262 is shownoverlapping two books 264 so that each book 262 overlaps half thediameter of two books 264, each book 272 is shown overlapping two books274 so that each book 272 overlaps half the diameter of two books 274,and each book 282 is shown overlapping two books 284 so that each book282 overlaps halt the diameter of two books 284. However, the density ofoverlap may be greater in some embodiments of the present invention. Forexample, each book 262, 272, 282 could about overlap 75% of the diameterof one book 264, 274, 284, respectively, and 25% of the diameter of anadjacent book 264, 274, and 284, respectively. Also, in one embodimentof the present invention, all of the books in a lower layer are writtento before the next layer above is written to. Also, in one embodiment,all of the bookshelves in a lower layer are written to before thebookshelves in an upper layer to expose the medium uniformly. Forexample, in diagram 216, bookshelves 268 and 288 are written to beforebookshelf 278. In addition, in diagram 216, although for simplicity,each bookshelf is shown as being composed of two overlapping layers,many overlapping layers may be part of a given bookshelf. Also, althoughonly three overlapping bookshelves are shown in diagram 216, there maybe many overlapping bookshelves. In addition, although for simplicity,in FIG. 2, bookshelf 278 is shown overlapping about half the width ofbookshelf 268 and half the width of bookcase 288, the density of overlapmay be greater. For example, bookshelf 278 could overlap 80% of thewidth of bookshelf 268 and 20% of bookshelf 288 allowing a bookshelfadjacent to bookshelf 278 to overlap 80% of bookshelf 288, etc.

In sparse mode, data written is by a host in non-overlapping bookformat, as shown in diagram 212 in FIG. 2. The book density may also bean attribute of this recording mode. This write mode is appendablewithin given time constraints in the book mode. The last book written iscured prior to appending.

In robust low density mode which is also illustrated by diagram 212 inFIG. 2, the write schedule is adjusted to write fewer, much strongerholograms in non-overlapping book format. Robust low density mode may beused for very important data that must be recoverable, such as a librarymap. This mode is appendable at the book level.

1D dense mode is written using overlapping books in 1 dimension, thedirection of the bookshelf 248, as illustrated in diagram 214 of FIG. 2.This mode may also be referred to as 1D polytopic. This mode is alsoappendable within given time constraints in the form of bookshelves. Theend of a bookshelf is completed or cured before appending.

2D dense mode is written in overlapping books in 2 dimensions, bothalong the bookshelf and between bookshelves, as illustrated in diagram216 of FIG. 2. This mode is referred to as 2D polytopic and isappendable in the form of bookcases. A full bookcase is finished andcured before a new bookcase can be written. It is important not toexceed the end of the partition while overlapping and curing the end ofa bookcase. Examples of polytopic recording techniques that may be usedin various embodiments of the present invention are described in U.S.Published Patent Application. No. 2004-0179251, entitled “Polytopicmultiplex holography,” and U.S. Published Patent Application No.2005-0036182, entitled “Methods for implementing page based holographicROM recording and reading,” the entire contents and disclosure of whichare hereby incorporated by reference.

When recording in polytopic mode (1D or 2D), the books may be written inan order that provides for uniform exposure of the medium. This requiresthat the books be written in layers of non-overlapping books. The numberof total layers is equal to the sum of the polytopic overlap factor ineach of the polytopic dimensions. For example, in a 2D polytopicrecording with a theta or x overlap factor of 4 and a radial or yoverlap of 2, there will be 6 layers of recordings. At the end of therecording, all books will be separated by at least the size of the beamwaist, but books on the same layer are separated by the full beam size.

The logical format of the present invention employs various partitioncontent types including: library map type, logical block user data type,media manufacturing data type, calibration/drive data interchange type,drive firmware mode parameters type, etc. If a library map partition iswritten on data storage medium, the library map partition may be writtenin robust low density mode and may be written redundantly. The logicalblock user data partition may include any type of user data to bewritten in a logical block format and use any of the recording modesbased on the format generation. Logical block user data partitionsinclude user data, a card catalog, and a file system. Logical blockaddresses may begin at address 0 to start a partition unless theaddresses are a spliced virtual partition continuing from a previouslycompleted partition. A medium manufacturing data partition is a small,fixed partition that includes details about the medium including theformulation, density, geometry, composition, write characteristics, etc.Pertinent information to understanding the makeup of the medium, the ageof the medium, and how the medium must be written and read are locatedin this partition. This partition is a detailed supplement to the briefamount of media information included in the library map and, ifincluded, this data may be in multiple, redundant partitions to assureits recovery. A calibration/drive data interchange partition may includefactory written books with optimal book and page positioning to be usedfor drive servo and read calibration. A calibration/drive datainterchange partition may also include areas for writing to test writingand, possibly, to help train for interchange. For example, each drivethat is to write to a disk may write a calibration stack in thispartition for the drive to train to prior to reading the data written bythat drive. This also requires drive write IDs to be associated withwritten partitions or write sessions. A drive firmware/mode parameterspartition may be a short partition containing code upgrades or modeoperational parameters that should be used with a medium or from thispoint forward.

A card catalog is a structure generated by a holographic storage deviceon a write session or bookcase basis. One purpose of the card catalog isto provide a sparse mapping between host logical block addresses,chapters, and books within a partition. The card catalog allows aholographic storage device to determine which chapter number in thepartition in which a requested logical block or group of logical blocksmay reside. The card catalog also provides a description of eachanthology to enable the size and redundancy of anthologies to change onthe fly.

The host based logical blocks are mapped to physical elements on thedata storage medium that are different sizes than logical blocks. Also,due to the technology and processes used, the number of physical blocksin chapters and books may vary. The card catalog provides theinformation required for the HDS to determine where a logical block mayreside on the media when it is requested by the host.

Due to the high capacity and number of chapters on the data storagemedium, it may not be possible to provide a complete cataloging of alllogical block locations. In this case, a sparse mapping of the physicalchapter locations is provided in the card catalog. When using the sparsecard catalog, the firmware of a holographic storage device may includealgorithms that can make good guesses and quick recoveries when locatinglogical blocks that don't have direct location mapping in the cardcatalog.

The card catalog may reside within a partition, as an appendix to thelibrary map, or both. It may be that a sparse card catalog is includedin the library map until the available space is used up and a morecomprehensive version is included within the partition.

For multi-session partitions, locating the card catalog within thepartition requires a method of updating it and appending new cardcatalog versions as new sessions are written.

FIG. 3 shows how a single book 302 is located in a digital storagemedium 304. Book 302 includes pages 312 of chapter 314 and pages 316 ofchapter 318. Chapter 314 also includes additional pages (not shown) froma previous book in digital storage medium 304. Digital storage medium304 includes a top substrate 322, a bottom substrate 324 and has avolume indicated by double-headed arrow 326.

The book of FIG. 3 has multiple pages multiplexed within it. Physically,the pages are actually written throughout the entire volume of themedium. The chapters are logical groupings of consecutive pages asdescribed in more detail below. In one embodiment of the presentinvention, the books may be elliptical in shape due to the design of theobject and reference beam optics in the recording system used to createthe books.

FIG. 4 shows the composition of one embodiment of a logical format 402of the present invention, showing the levels of data formatting as dataformatting is transformed from host based logical blocks 412 all the waydown to data pages 436. Host based logical blocks 412 are assembled intochapters 414. Each chapter 414 is subdivided into user data 422, achapter directory 424 and parity information 426. Books 432 areassembled from chapters 414, however, as can be seen in this figure,chapters do not have a direct relationship to books. Each book 432 issubdivided into sections 434. Each section 434 is made up of data pages436. Each data page includes a page header 442, a page overhead 444,page user data 446 and page error correction codes 448.

In the logical format example of FIG. 4, the logical block size may beany number of bytes and may change on a block basis. In most cases, thelogical block size is x*512 where x is host defined, but the block sizecan also be a variable number of bytes. The chapter directory 424 isappended to the user data to start a chapter 414. The chapter directory424 includes compression map, copyright protection, data type, logicalto physical mapping, etc. any other logical level info. The logicalblocks map into the user data blocks 422 until a given chapter 414 isfilled. Within a chapter 414, data types are not mixed, however the sizeof a chapter and the degree of redundancy within the logical format mayvary.

An anthology is used to allow the recovery of book locations that aretotally wiped out by dust, scratches, etc. Preferably, book locationsare clean before they are written, however, if the book locations arenot clean before being written, the locations that are not clean are bemapped out. However, if a book gets damaged after the book is written,the disclosed anthology provides mechanism to recover any or all datawithin the books.

FIG. 5 shows an example of a sparse anthology 502, as opposed to a denseor polytopic anthology, with 255 chapters, the last 4 chapters of whichare redundant. It is up to the specific format generation to define thenumber of redundant chapters vs. user chapters. If all or a portion of abook is bad in the anthology, for example book 2 with chapters 3-5,redundant chapters 252-254 can be used to reconstruct chapters 3-5, thusrestoring the book.

During writing, a large buffer, calculated on the fly, is used to storethe redundant chapters of the anthology. Once the user chapters of theanthology have been written, the remaining redundant chapters of theanthology are written. The chapter numbers of redundant chapters areencoded differently from user data chapters so that they can easily beidentified.

During reading, the redundant chapters may rarely be read. If there is afailure when reading a chapter, re-reads and retry methods are attemptedfirst. If the reading of the chapter still fails, then anthology levelECC will be invoked by reading all of the chapters including theredundant ones and performing corrections. If successful, and it isdetermined that most, if not all of a book failed, the offending book isreconstructed in a spare and mapped out.

The reason the anthology ECC level is based on chapters rather thanbooks is that the anthology ECC level occurs before chapter ECC and, atthis point, there is no knowledge about the physical book location ofdata on the disk since chapters are not tied directly to books. However,as long as the chapter and book sizes are chosen such that 255 chapterscover multiple books, this scheme provides good protection. Also, sincebooks are written a full book length apart, even in polytopic, highdensity mode, this method provides a physical interleave betweendifferent anthologies providing additional protection from a single,large defect.

FIG. 6 shows an example of an anthology written in polytopic mode. InFIG. 6, chapters 247-255 are redundant. These chapters provide thecapability to reconstruct 3+ books that may have been damaged within theanthology.

For a holographic storage device, a book is defined as a physical groupof holograms written at a single physical r, theta or x, y location.This is also known as a stack. These holograms are individuallyaddressed by one or more pseudo in-place multiplexing schemes. A book isalso defined as the maximum number of holograms written in a single spotlocation. For shift or correlation multiplexing where pages overlapsignificantly by a small change in position, a book can be defined as agroup of partially overlapped holograms.

In one embodiment of the logical format of the present invention, a bookis an in-place stack of holograms. However, a book may encompass anatomic group of shift-multiplexed holograms or hologram sections whenused with a hybrid multiplexing method.

Due to rewrites and adjustments in write schedule due to media aging,read exposures, etc, the number of pages in a book may vary within apartition and the logical format must handle this situation. In general,books contain a minimum number of pages in order to meet transfer raterequirements. This transfer rate requirement is due to the fact that itis very quick to switch pages within a book since it only requires areference beam adjustment (100s of us) whereas it can be relatively slowto switch book locations since this requires media or head movement (10sor 100s of ms).

In embodiments of the present inventions that employ sections, in orderto fully utilize the available dynamic range of the medium, it may benecessary to use multiple multiplexing schemes within the same book toincrease the addressing space. However, many embodiments of the presentinvention do not employ sections.

In one embodiment, the logical format of the present invention does notcall out specific addresses for different multiplexed sections, so morethan 2 multiplexing methods can be combined within a book withoutimpacting the logical format.

It provides the method of locating specific logical block boundaries andhandles the case of logical blocks that span chapters. The chapterdirectory also provides support for hardware compression mapping.

A page is the image written to the media during 1 exposure or readduring 1 integration time. The page size is given in pixels and isdriven by library map size. A page contains a header to identify it,chapter level information to indicate its position within a chapter,decoding, alignment, and reference information as well as the encodeddata.

For most device types, logical blocks are fixed sizes for a given mediaand, based upon the current SCSI standard, the logical blocks aregenerally 512 bytes or a multiple thereof. Some devices, like MO allowthe block size to change from 512 bytes up to 4 KB. Tape devices allowvariable sized blocks that do not have to be a multiple of 512 bytes andthey can change on a block by block basis. This invention allows bothfixed blocks of 512 byte multiples and variable size blocks. The blocksize may change for every logical block written, if desired.

In one embodiment of the present invention, a holographic storage devicemay use any multiple of 512 byte fixed blocks as well as variableblocks. The flexibility of the system simplifies integration withdifferent host applications and drivers. This flexibility is achievedthrough mapping into 1 or more chapters and has no relevance to physicalcharacteristics of the holographic storage device.

An anthology of the present invention may be implemented as Reed-SolomonECC or other Forward Error Correction (FEC) types across chapters withina partition of user data. The anthology is independent of the physicalrecording mode used. The anthology length and redundancy is variable andimplemented as a mode parameter. The trade-off between Anthologyoverhead and number of books being protected may be made depending onthe media type and typical and worst case system performance.

The recording system may adjust the anthology redundancy at the end of abookcase to keep the overhead constant. This is done by reducing thenumber of redundant anthology chapters added to the final anthology of abookcase in the situation where there aren't enough user chaptersavailable to fill the final anthology.

The anthology length and redundancy is tracked in the Card Catalogstructure which provides a map and redundancy level for each anthologyin the partition. The system will accept an anthology redundancy of 0,which eliminates the overhead of the anthology at the cost of losingbook level protection.

In one embodiment, the codewords of an anthology consist of the nth byteof each chapter in the anthology. There is no interleaving done at theanthology level. As an example, consider an anthology consisting of 128chapters with chapter sizes of 32 pages and page sizes of 50 kBytes ofuser data each. This anthology would have 32*50 kB or 1,638,400codewords, each 128 bytes long, for a total anthology size of 200Mbytes.

During recording, the redundant chapters are calculated on the fly asthe user chapters are compiled and sent to the channel for encoding andwriting. When the user chapters of an anthology have been written, theredundant chapters are then written and a new anthology can begin. Thereis some write transfer rate latency involved in writing the redundantchapters. User data is buffered up as much as allowable by the bufferduring the time spent writing the redundant chapters. The anthologywrite overhead will have a negative impact on the sustained writetransfer rate that is directly proportional to the redundancy levelselected.

During reading, if the anthology chapters are not needed for recovery,the card catalog provides the information required to skip over theredundant chapters when the data is recoverable. In the case where auser data chapter is found to be unrecoverable and anthology recovery isused, all of the chapters of the anthology are read into memory and thelost chapter(s) is (are) reconstructed. In the case of multiple chaptersbeing lost in a book, the book may be marked bad and relocated via thebad mapping process. Thus, in the normal case, where all books arerecoverable, the anthology overhead will have almost no impact on thesustained read transfer rate.

A card catalog is a mapping of the information contained in the userdata portion of a partition. There is at least 1 card catalog per userdata partition. There are multiple types of card catalogs depending onthe partition type. Different versions of the card catalog can vary indetail and length. The card catalog's primary responsibility is toprovide a mapping of anthology structures and chapter and logical blocknumbers within a partition. This section provides the detaileddefinition of all defined versions of card catalogs.

A single session card catalog is used for user data partitions that arewritten in a single write session. This type of card catalog is writtenonly 1 time at the end of a write session. It follows the end of theuser data of the session and is written as its own chapter or chapters.The size and redundancy of the single session card catalog chapter maybe different than that for the rest of the user data in the partition tosave space without compromising the level of protection of the singlesession card catalog.

A single session card catalog may contain 2 types of information. Onetype is a sparse mapping of the user information at the book level. Itprovides a snapshot of the book and logical block number at the start ofeach book covered by the map. It is up to the drive to provide theheuristics and search techniques to find chapters and logical blocksthat are not located at a book start. This type of information iscontained in a series of structures call Table of Contents (TOC). Thereis 1 table of contents per book described in the single session cardcatalog.

A second type is a mapping of the anthology structures written withinthe partition. These structures provide a chapter level mapping ofanthologies so that the holographic storage device can determine whereanthologies begin and end and which chapters contain redundant data.There is 1 structure per anthology. Each of these structures is calledan anthology binding.

A single session card catalog may also be written in the Library Mapstructure depending on the format generation implementation. The singlesession card catalog format includes a header structure to define thecard catalog. This structure is followed by 0 or more anthology bindingstructures which are then followed by 1 or more table of contentsstructures. The entire single session card catalog is appended with afooter for additional integrity protection. When reading the singlesession card catalog, the drive assumes that all anthology bindingsimmediately follow the single session card catalog header and all of thetable of contents entries immediately follow the last anthology bindingentry.

As a book is a physical, and not a logical entity, it doesn't have anassociated logical structure. Each book is given a specific physicaladdress that is based on either r, theta or x, y coordinates with theaddresses being medium dependent. The locations of the books may bedetermined via encoder values or feedback off of the disk if there is aservo addressing pattern on the media substrate.

The book address corresponds to the physical address referred to in manyof the logical structures. The definition of the physical addresses andhow they are converted into a physical location or coordinates on themedium are defined by the format generation.

A section is also a physical and not a logical entity. If sections arepresent in a specific format, their addressing is incorporated with thebook physical addressing scheme.

A chapter is built up from data to be written to the media and redundantpage data generated to provide for recovery of lost pages within thechapter. A chapter is always an integral number of pages long and mayrequire padding in the data portion to fill out the data pages of achapter.

The data of a chapter may be made up of host logical blocks of userdata, some other data structure that needs chapter level protection(e.g. Card Catalog, Library Map, . . . ) or redundant check bytes(Redundant Anthology chapter).

At the end of chapters containing logical blocks of user data, astructure called a chapter directory is appended. The data+the chapterdirectory must be a whole number of pages long. Filler data may be addedto make it come out to a page boundary. Chapter directory structures arenot required for all chapter types such as filler chapters, redundantanthology chapters, and chapters containing fixed structure data (suchas the Library Map).

In one embodiment, the ECC pages are calculated and appended to the endof the chapter. The total chapter length and the amount of redundancy isvariable depending on the mode parameters, format generation, and datatype being protected.

The data protected by the chapter ECC may be sequential or interleavedwith the ECC parity information. If there isn't enough data to fill outthe end of the chapter or up to the chapter directory structure, fillerdata is inserted. The filler data may be defined as sequential bytesstarting at 0 and incrementing by 1 for each filler byte so that a fixedpattern is not presented to the page level randomizer.

The chapter directory structure is only present for chapters containinglogical blocks of user data. For these chapters, chapter directoriesfollow the data and filler portion of the chapter and ends in the lastuser page of the chapter.

The chapter parity information may be separate from the data pages andwritten after the user page containing the chapter directory to completethe chapter. In other embodiments, the parity information for chapterprotection may be interleaved with the user data.

Chapters may span books and may be larger or smaller than a book.

Reed Solomon may be used for chapter level protection as well as forAnthology ECC. Many other types of ECC may be used for both chapter andanthology level protection.

A chapter level ECC codeword consists of 1 byte per page across theentire chapter. For example, in an 8 page chapter with 2 redundantpages, byte 0 of each of the 8 pages constitutes the first codeword,byte 1 is the second, byte 2 the third, etc.

Chapter level correction can be performed using erasure correction.Erasure correction depends on getting pass/fail information at the pagelevel so that the correction algorithm has pointers to the errors. Doingthis nearly doubles the correction power of the chapter level ECC. For achapter of N pages with P parity pages, P−1 pages may be corrected usingerasure correction. If erasure correction were not used, only P/2−1pages could be corrected.

It is advantageous at the chapter level to use it with multiple pagelevel codewords, each having its own CRC or erasure indication. Thiseffectively increases the power of the chapter ECC by allowing it tocorrect errors on more pages than the chapter level redundancy wouldindicate. However, this chapter format can work with a single erasureindicator per page as well.

A chapter directory is only included in chapters containing logicalblocks of user data. The chapter directory contains all of theinformation about the data that the logical portion of the firmwareneeds to reconstruct the original data into logical blocks. The chapterdirectory includes the logical to physical mapping tables includingcompression. The chapter directory also includes any other applicationlevel data attributes that may be required such as copyrightprotection/rights management, real time/non real time requirements etc.The primary chapter directory may be located at the end of the chapteror at any other location in the chapter.

A chapter directory may be a variable length depending on itscomplexity. The complexity is determined by the size and number oflogical blocks, if the logical blocks are variable, and if compressionis being supported.

A page is the image written to the media during 1 exposure. The pagesize is given in pixels and is driven by SLM size. There is no limit tothe SLM size. Examples are 640×480, 1024×1024, 1280×1280, etc.

A formatted page is composed of the following components: codewords orparagraphs that each contain the encoded user data and may include thepage header, fixed patterns for channel preprocessing and alignmentinformation, margins i.e. areas that are left over not fitting intoparagraphs or portions of the image unsuitable for data storage, andother encoded fields that may be used to for page information (like pageformat type, page header information, . . . ) or page decoding keysrequired for recovering the data pages.

The page format is impacted each time the page size, code rate,modulation code, or fixed patterns are changed. Depending on theapplication, the page format may vary due to differences in costrequirements, capacity requirements, optics quality, media types, andoptics/system quality.

Logical blocks are the units received from the host. In general, theholographic storage device has no knowledge of the type, format,structure, or boundaries of the data contained within logical blocks.Logical blocks may contain file data, file system information, or anyother type of information the host wants to store on the device. It isup to the host and application software to decipher the informationwithin a logical block or set of logical blocks. The holographic storagedevice's responsibility is only to return the same information for anygiven logical block number.

Block sizes are selected by the host using mode selection parameters. Inone embodiment of the present invention, logical block sizes must be amultiple of 512 bytes. The logical format of the present inventionsupports both fixed and variable logical block sizes.

Each format generation defines its own media management process. Mediamanagement in this context is defined as the processes and algorithmsthat control the following: the order of writing books to the media, thepartitioning of the media and the management of partition creation, thedefinition of write sessions and their boundaries, and the definition ofwhat types of partitions must be present and the types of partitionsthat are used for user data when filling the media.

Options for performing the defect mapping process, using variousalgorithms, include scanning the media at manufacturing time, scanningit during a format operation before the media is written to for thefirst time, checking a book just before it is written to, and replacingbooks that have gone bad after they have been written (assuming it isrecoverable through the anthology protection).

For books that are mapped out before they are written, there is only aneed to keep track of them so that the drive knows not to write or readthose locations. This bad book map list may be fairly long, so it may beput in its own special partition type. In some embodiments of thepresent invention, it is desirable to be able to do this full mappingall at once so that the bad map can be written as its own partition in asingle write session.

When mapping is done on the fly as new books are about to be written,the bad map must be updated frequently and be appendable. When thismethod is used this structure may be added to the Library Map structure,if there is a Library Map partition, since it needs to be updated everywrite session as well.

Bad mapping that supports replacement of already written books can besupported by this logical format specification. In this case, the drivemay only be doing a read session, which does not require a Library Mapupdate. So, extra Library Map updates may need to be done if the badbook map is in that partition. Also, a partition needs to be set asidefor replacement books and this partition may need to be appendable. Yetanother issue with this is that once the media is fully cured andcompleted, then no more bad books may be reconstructed and remapped.

In some embodiments of the present invention, there may be a need forstoring and, possibly, updating calibration information on the mediabased on manufacturing or field testing done on the media. Ifcalibration needs to be stored and updated, such storing and updatingmay be handled in a manner similar to a medium based library map.

An issue with session based write operations is the risk that an erroror interruption will occur during the write session and the drive is notable to cleanly complete the write session and update the library mapand card catalog entries. Primary causes of this are power outage andmanual ejection of the disk during a write session. Manual ejection ofthe disk has a very low probability of occurrence since the firmwarewill lock out media ejection during write sessions and power outages canbe guarded against through battery back ups. However, if something likethis occurs, the logical format of the present invention allows at leastthe previously written data to be accessible. The logical format mayalso make it possible to recover some of the data written during theinterrupted session, but that is not a requirement.

The logical format provides hooks for recovering an interrupted writesession by providing a field in the Library Map to indicate that apartition is being updated. This field is set before a write sessionstarts (in the RFID) and is cleared after the write session is fullycompleted. During loading, this field will tell the drive that a writesession in a particular partition needs to be recovered.

One recovery process of the present invention includes the followingsteps: read the partition descriptor for the partition that is out ofdate to determine the start and end book locations, if the card catalogis in the library map structure, read that in and assume it is correctexcept for the interrupted write session, scan the book locations beyondthe last card catalog and look for a valid card catalog. If one isfound, assume that the last write session was completed and the LibraryMap wasn't updated, if no card catalog is available in the Library Map,scan all of the books in the partition, look for card catalog structuresand save them and when no more data or card catalogs are found, assumethe last card catalog found is correct, update the Library Map andpartition descriptor to point to this card catalog. It may be necessaryto cure around the last write session. Also, cure all of the remainingbooks in the partition and/or adjust the partition size, mark thispartition as unappendable and completed.

A more complete recovery process may involve gathering the page physicaladdress, chapter number, and complete chapters with their chapterdirectory structures as they are found in the scan to the end of data.Using this information, the card catalog describing the final,unfinished session can be completely reconstructed. This card catalog isthen appended after the end of data is found, the partition would beupdated, and the session would be completed and the area around it curedto complete the bookcase.

Any new write sessions then starts in a new partition and may be linkedto the recovered one. If the recovery is fully successful, furtherappends to the medium may be allowed. If the partition that is out ofsync cannot be fully recovered, it may be the last one containing dataon the medium and the medium may be marked as unappendable. Thespecifics of the recovery algorithm are format generation dependent.

The load process for a data storage medium of the present invention doesnot only involve inserting and removing the media into and out of theread/write position but also includes determination of the media typeand state and preparing it for read/write operations. Each system typeand format generation will require a different load/unload process whichalso includes the sequence and procedures for locating and validatingthe library map required prior to performing useful operations on themedia.

In one embodiment, the logical format of the present invention supportswrite retries via the page header. If any pages are rewritten due tosome detected issue such as: read after write failure, shock sensor,servo error, etc., the page can be rewritten immediately using the exactsame chapter values, but with updated physical address values in thepage header. The number of times the page may be rewritten is dependenton the format generation.

During reading, if a page is detected as a repeat of a previously readpage, the read pipeline is interrupted until decoding of the previouspage is completed. If it decodes successfully, all repeated versions ofthe page are skipped until a new page is encountered. If the decodefails, the repeated page is sent through the decoder. This processcontinues until no more repeated pages are encountered or the page issuccessfully decoded.

During operation on a specific piece of media, the drive will build up adetailed mapping of the chapter and logical block locations at a muchfiner grain than the book level card catalog. As it does this,subsequent seek performance will continuously improve as long as themedia is left in the drive for reading.

For applications that require good seek performance, an extended cardcatalog can be written to media that maps out the data at a finergranularity at the expense of capacity. When the algorithm is deemed tobe required, it will be revised and included in the chapter section asan additional card catalog option.

In one embodiment of the present invention, the logical format of thepresent invention allows for compression block groups that are definedvia the Chapter Directory.

A format generation is defined as a set of the components of thehierarchy of the format components applied to a specific system type orarchitecture and type or family of media. Any time there is a change inthe revision or implementation of one of the format components or achange to a system architecture or media type or usage, a new formatgeneration must be defined.

In addition to specifying the revisions and usage of each layer of theformat hierarchy, the format generation definition may includeoperational algorithms and modes to fully define how the system worksunder that generation of format.

In one embodiment, the present invention provides a system for storingdata comprising: a data storage medium; and a plurality of partitions onthe data storage medium, wherein two or more of the partitions have datathat is written in different recording modes. One or more of theplurality of partitions may contains data recorded in non-overlapped,low density books for increased recovery reliability. Also, one or moreof the plurality of partitions may contain data recorded innon-overlapped, high density books for increased capacity. In addition,one or more of the plurality of partitions contains data written in1-dimensional, overlapped, polytopic books. In one embodiment of thepresent invention, data may be written on a data storage medium so oneor more of the plurality of partitions contains data written in2-dimensional, overlapped, polytopic books. The 1-dimensional or2-dimensional polytopic books may be written in a skip sorted order toensure uniform usage of the medium. Examples of skip sorting techniquesthat may be used in various embodiments of the present invention aredescribed in U.S. Pat. No. 6,614,566 to Curtis, et al., the entirecontents and disclosure of which is hereby incorporated by reference.Examples of polytopic recording techniques that may be used in variousembodiments of the present invention are described in U.S. PublishedPatent Application. No. 2004-0179251, entitled “Polytopic multiplexholography,” and U.S. Published Patent Application No. 2005-0036182,entitled “Methods for implementing page based holographic ROM recordingand reading,” the entire contents and disclosure of which are herebyincorporated by reference.

EXAMPLES Example 1

There are multiple subsets of SCSI commands targeted to different devicetypes, none of which currently specifically target holographic storagedevice. However, a holographic storage WORM device may be adapted in astraightforward manner to either the WO block device command set or theDVD-R command set, so there may not need to be significant SCSI commandadditions or enhancements to make a holographic storage device that isable to use the logical format of the present invention. Additionalmodifications may be made to the host application software to alter theinterpretation of some of the commands when dealing with a holographicstorage device instead of conventional storage devices.

Example 2

A library map in accordance with one embodiment of the presentinvention, Library Map Version 0x80, is shown below in Table 1, is adefinition of one version of a library map and partition descriptorstructures. In this version, the library Map structure and partitiondescriptors all are encoded together. The Library Map structure iswritten first followed by 1 or more partition descriptors. The partitiondescriptors must always cover all of the book addresses over the entiremedia. When the holographic storage medium has not been written to, asingle partition descriptor may be used to describe the entire volume.Additional partitions may be added as they are created during writesessions.

Each partition descriptor may also include its card catalog in thisregion. If the partition card catalog is included, it immediatelyfollows the partition that it belongs to. The next partition descriptorwill follow that card catalog.

The card catalog structures are defined with their respective partitiondefinitions.

TABLE 1 Example Library Map Definition Library Map Definition StructuresField Size Basic Map Library Map ID 32 bits Information Library MapLength in Bytes 16 bits (Basic Info Only) Library Map Revision 8 bitsLibrary Map Sequence Number 8 bits Total Bytes in this portion of theLibrary 32 bits Map Address Pointer to Media Based Library 32 bits MapPointer to Redundant Copy of Media 32 bits Based Library Map Pointer toPrevious Media Based Library 32 bits Map Format Generation 8 bits MediaGeometry Code 8 bits Media Formulation Code 8 bits System Type 8 bitsMedia Status 8 bits Reserved = 0 24 bits Byte Offset to First PartitionDescriptor 32 bits Partition Information Byte 8 bits Number ofPartitions 8 bits¹ Unsynchronized Partition Number 8 bits² PartitionInformation Padding 8 bits³ Time of First Media Write 8 Bytes VolumeSerial Number 128 Bits Additional Data Size 8 bits⁴ Additional DataField 255 Bytes⁵ Library Map CRC 32 bits ¹This field can be expanded asneeded to support more than 256 partitions. ²This field can be expandedas needed to support a partition larger than 256. ³This field can varyfrom 0-24 bits to make the partition information end on a longwordboundary. ⁴This field may vary to accommodate any size of statisticsfield. The Statistics size + Statistics fields must end on a longwordboundary. ⁵255 bytes nominal. May be shorter or longer. - Includes DriveStats Field TBD by format generation. Includes Drive SN, Time in drive,# r/w cycles, . . .

The Library Map ID field is a unique pattern to identify the start ofthe library map structure. It is encoded in ASCII as “LIBM”.

The Library Map Length field is the length in bytes from the start ofthe library map through the library map CRC. Value depends on thevariable Volume ID and Drive Statistics fields.

The Library Map Revision field is the Version of this library mapheader. Changing this allows the header to change drastically startingafter the 8^(th) byte. These first 3 fields are the only ones that needto remain constant throughout the many versions of format. Thisdefinition is version 0x80. Versions 0x80-0xFF are reserved for versionsof the format.

The Library Map Sequence Number field is a number that starts at 0 andis incremented each time the library map is updated. For Library Mapswritten to Write Once media, this sequence number is used to find themost recent version.

The Total Bytes in This Portion of the Library Map field is the numberof bytes beginning with the Library Map ID field that are included inthis structure including all attached partition and card cataloginformation. It is used in case all of the information cannot fit in thestarting place (i.e. RFID).

With respect to the Address Pointer to Media Based Library Map field, ifthe Library map and attached partition descriptors and card catalogs donot fully fit in this area (e.g. RFID), this points to the area wherethe current Library Map information is repeated in full. It is a bookaddress on the media. If set 0xFFFFFFFF, then there is no media basedlibrary map.

With respect to the Pointer to Redundant Copy of Media Based Library Mapfield, if desired, 2 copies of the library map may be written to themedia in different locations on the media. This is also a book address.If set=0xFFFFFFFF, then there is no media based redundant library map.

With respect to the Pointer to Previous Media Based Library Map, ifthere is a library map partition on the media, a new version is writtenafter each write session. This points to the book location on the mediawhere the previous library map is located. This allows the drive toexamine old library maps for a history of how the media has been writtenand is used as both a recovery and statistics tool.

The Format Generation field is the combined definition of the formatimplementation at all levels including revisions of the library map,partition descriptors, card catalog, chapters, pages, and media usage.The format generation also defines some algorithms for system operationand media usage.

The Media Geometry Code field code provides physical information aboutthe media not including its formulation. Items encoded in this includedisk vs. coupon, in a cartridge or not, if it has an addressing servopattern and, if so, what kind/version, substrate type, guard bands, etc.

The Media Formulation Code provides information about the mediaformulation. The formulation information includes thickness of themedia, formulation type, write once vs. rewritable, and any otherinformation needed to determine book capacity, write schedules, curetimes, etc.

The System Type field is meant to define a system type to determineinterchange compatibility.

The Media Status field Indicates if the media has never been written, ispartially written, is appendable, full, or write protected. The field isencoded as shown in Table 2 below:

TABLE 2 Media Status Byte Definition MEDIA STATUS BYTE DEFINITION 7 6 54 3 2 1 0 Formatted Secure Reserved Status

In Table 2, for the entry “Formatted”: 0=unformatted, 1=formatted. Thismight mean bad mapping has been done or any other type of preparation ormfg data has been put on the media. For the entry “Secure”: 0=anyone canread. 1=Some security policies will be used to determine readability ofthe data. The entry Status Field describes the current overall status ofthe data storage medium, wherein

-   -   0=Empty—never been used    -   1=Certified—Media has been certified and bad areas mapped out.    -   2=Appendable—Has been written and can still be added to    -   3=Write Protected—User has write protected the cartridge via        software command.    -   4=NonAppendable—Some recovery error or write timeout occurred on        the media and it can no longer be written to. It is not full and        may not be cleanly finished.    -   5=Recovered—There was an error discovered at some point in the        integrity of the library map or substructures. This error has        been recovered, but the media is no longer appendable.    -   6-14—Reserved    -   15=Full—Media has been written to capacity and cured

The Byte Offset to First Partition Descriptor is the byte offset fromthe beginning of the library map (the ID field) to the first partitiondescriptor. This allows the fields following this one to be of variablesize.

The Partition Information Byte is the status byte defining the partitioninformation in the fields following it. The Partition Information Byteis defined as shown in Table 3 below:

TABLE 3 Partition Information Status Byte Definition PARTITIONINFORMATION STATUS BYTE DEFINITION 7 6 5 4 3 2 1 0 UnsynchronizedReserved Number of bytes Partition in the “Number of Partitions” Fields

In Table 3, for the entry “Unsynchronized Partition”: 0=there are nopartitions out of sync with the Library Map and Partition Directories.1=There is a partition out of sync with the Library Map and PartitionDirectory. If this bit is a 1, the “unsynchronized partition number”field is valid. Since only 1 write session can be active at a time, only1 partition may be invalid at a time. This bit is set prior to startinga write session in a partition. Once the write session is completed, theLibrary Map and associated PD are rewritten and this bit is set back=0.This provides an indicator that a write session was interrupted anderror recovery must be performed. The Number of bytes in the “Number ofPartitions” fields entry defines the number of bytes in the “Number ofPartitions” and “Unsynchronized Partition Number” fields. This entrystarts out a 1 (8 bits each) and grows as the number of partitionsgrows. This allows a maximum of 4G partitions on the media.

Number of Partitions is the current number of partitions defined on themedium, including both user and internally access partitions. Thedefault size of this field is 8 bits for a total of 256. The field canbe increased up to 32 bits and the Number of Partitions field expandedas needed to support more than 256 partitions.

With respect to Unsynchronized Partition Number field, if the“Unsynchronized Partition” bit is set, this field contains the partitionnumber with the out of sync partition descriptor. The size of this fieldis always the same size as the “Number of Partitions” field. TheUnsynchronized Partition Number field may be expanded as needed tosupport more than 256 partitions.

The Partition Information Padding field pads out the partitioninformation fields to a longword value and varies based on the size ofthe “Number of Partition” and “Unsynchronized Partition” fields. Thedefault size of this field is 1 byte and the value of this field isalways 0. The Partition Information Padding field may vary from 0-24bits to make the partition information end on a longword boundary.

All of the fields from Library Map ID down to Partition InformationPadding reside in the RFID or MIC. Fields after this may reside on themedia. This may be 40-44 bytes depending on the # of partitions on themedia.

Time of First Media Write is a record of the first time data waswritten. This assumes the drive has a real time clock or the host canprovide the time/date information. This may be used to determine whenpartially written media has aged enough that it may be starting todegrade written data and may be finished, partially cured around thewritten data, or fully cured and marked as NonAppendable. The timeformat is based on the UDF/ECMA 167 1/7.3 format except that it onlyprovides granularity to the minute since this may be more than adequatefor determining the effects on media.

Struct timestamp {    Uint16 TypeAndTimezone    Uint16 Year    Uint8Month    Uint8 Day    Uint8 Hour    Uint8 Minute }All time fields in lower level structures use this same format.

Volume Serial Number is a unique number identifying the volume.

Overall Drive Statistics Size is the number of longwords in the drivesstatistics field. Maximum is 1023 bytes, but it is desirable to keepthis short if RFID space is running low. The Overall Drive StatisticsSize field may vary to accommodate any size of statistics field. TheStatistics size Statistics fields must end on a longword boundary.

Overall Drive Statistics Field is defined in the format generationsection. This field maintains overall stats like serial numbers for thedrives that have written the media, number of read/write/load/unloadcycles, time parameters that may help determine overall media life, etc.The Overall Drive Statistics Field is nominally 255 bytes. The OverallDrive Statistics Field be shorter or longer. This Overall DriveStatistics Field includes Drive Stats Field determined by formatgeneration. Includes Drive SN, Time in drive, number of r/w cycles, etc.

Library Map CRC covers the full Basic Map Information structure. In thisexample, the Library Map CRC is a CRC-32 format with polynomialx³²⁻x²⁶+x²³+x²²+x¹⁶+x¹²+x¹¹+x¹⁰+x⁸+x⁷+x⁵+x⁴+x²+x¹+1. It is initializedwith 0xFFFFFFFF, input bytes and output CRC is reflected, and the outputis XOR'd with 0xFFFFFFFF. This is the standard Ethernet CRC. If thisfails, it is assumed this copy of the library map is bad.

Example 3

An example of partition description definition in accordance with oneembodiment of the present invention is shown in Table 4 below.

TABLE 4 Partition Descriptor Definition Partition Descriptor DefinitionStructures Field Size Partition Partition Descriptor ID 32 bitsDescriptor (1 Partition Descriptor Length in Bytes 16 bits perpartition) Partition Descriptor Revision 8 bits Partition Data Type Code8 bits Partition Recording Mode Code 8 bits Partition Status 8 bitsDrive Emulation Type 8 bits Reserved = 0 8 bits Partition Number 8 bitsPrevious Linked Partition Number 8 bits Next Linked Partition Number 8bits Reserved 8 bits Partition Start Book Address 32 bits Partition LastRecorded Book Address 32 bits Next Appendable Book Address in Partition32 bits Starting Chapter Number for Partition 32 bits Last ChapterNumber Written 32 bits Next Appendable Chapter Number 32 bits StartingLogical Block Address for Partition 32 bits Last LBA Written 32 bitsNext Appendable LBA 32 bits Time of first Partition Write 8 Bytes Timeof last Partition Update 8 Bytes Partition Card Catalog Location 8 bitsReserved = 0 24 bits Pointer to Most Recent Partition Card Catalog 32bits Offset to the next descriptor (in bytes) 32 bits CRC covering thisPartition Descriptor 32 bits

The Partition Descriptor ID field is a unique pattern to identify thestart of a partition descriptor. The Partition Descriptor ID field isencoded in ASCII as “PART”. The Partition Descriptor Length in Bytes isthe number of bytes in the full descriptor from the ID including theCRC.

The Partition Descriptor Revision is the revision of this particularpartition descriptor. revisions can be mixed with different librarymaps. Also, different partition descriptor revs can be mixed within thesame media. The revision for this PD is 0x80. Versions 0x80-0xFF arereserved for pre-production versions of this format.

The Partition Data Type Code is the partition data type. The partitiontype deals with the type of information in the partition.

The Partition Recording Mode Code defines the recording mode used withinthe partition.

The Partition Status field indicates if the partition has never beenwritten, is partially written, is appendable, full, write protected,secure, or linked. The Partition Status field is encoded as shown belowin Table 5:

TABLE 5 Partition Status Byte Definition PARTITION STATUS BYTEDEFINITION 7 6 5 4 3 2 1 0 Linked Secure Reserved Valid Status

In Table 5, for the entry “Linked”: 0=not linked to any otherpartitions, 1=linked to another partition to create a single, logicalpartition. This linking is not visible to the host. For the entry“Secure”: 0=anyone can read, 1=Some security policies will be used todetermine readability of the data. The policies are dependent on thepartition type and are defined in the partition description section. Forthe entry “Valid”: 0=A write session has been opened on this partition,but has not yet been closed. This indicates that this partitiondescriptor and associated card catalog may not reflect the most recentwrite data in the partition and may be out of sync. This bit correspondsto the partition integrity map field in the Library Map. If the drivedoesn't know of an open session and this is a 0, then recovery processesare required to resync the partition descriptor and the card catalogwith the partition data. If this partition descriptor is written to themedia, this field may be out of date since the media version of theLibrary Map isn't written until after the session is closed. The“Unsynchronized Partition Number” field in the Library Map supercedesthis bit.

The Status Field is the current status of the partition where:

-   -   0=Empty—never been used    -   1=Not Used for PD    -   2 Appendable Has been written and can still be added to    -   3=Write Protected—User has write protected the cartridge    -   4=NonAppendable—Some recovery error or write timeout occurred on        the partition and it can no longer be written to. It is not full        and may not be cleanly finished    -   5=Recovered—Partition had a session closure error at some point.        This partition was scanned and the PD & CC were resynchronized.        It is possible that some or all of the data from the interrupted        write session was lost during the recovery. This partition is no        longer appendable and is read only.    -   6-14—Reserved    -   15 Full—Partition has been written to capacity.

For the drive emulation type field, the type of drive being emulated isdefined via a code. Examples of drive types are holographic WORM,rewriteable holographic, holographic ROM, optical WORM, tape drive (e.g.LTO tape drive), DVD, etc.

The Partition Number is the number of this partition.

The previous linked partition number is the partition number proceedingthis partition in a linked list of partitions.

The next linked partition number is the partition number for thepartition succeeding this one in a linked list of partitions.

The Partition Start Book Address is the book address where the partitionstarts.

The Partition Last Recorded Book Address is the book address where thepartition ends.

The Next Appendable Book Address in Partition is the book address wherethe next write may begin. This must take into account bookshelf andbookcase cures and skip the cured areas to fresh media. The next addressin relation to the last written address will depend on the partitiontype and the recording mode. This field is ignored if the partitionstatus is not=Empty or Appendable.

The Starting Chapter Number for Partition for non-linked partitions,this is always 0. For linked partitions, the Starting Chapter Number forPartition may be that a previous chapter ends in this partition, so thisvalue is the first chapter that begins in this partition.

The Last Chapter Number Written is the last chapter that was verifiedwritten to this partition.

The Next Appendable Chapter Number is used for appends if supported inthe current format generation.

The Starting Logical Block Address for Partition for non-linkedpartitions, this is always 0. For linked partitions, the StartingLogical Block Address for Partition may be that a previous logical blockends in this partition, so this value is the first logical block thatbegins in this partition.

The Last LBA Written is Last logical block address verified written tothis partition.

The Next Appendable LBA is the next logical block address to be used inthis partition if the format generation format supports appendoperations.

The Time of First Partition Write is a record of the first time data waswritten to this partition. The Time of First Partition Write may be usedto determine when partially written partitions have aged enough that itmay be starting to degrade written data and may be finished, partiallycured around the written data, or fully cured and marked asNonAppendable.

The Time of Last Partition Update is a record of the last time thispartition was written to. The Time of Last Partition Update may also beused for media management to ensure data integrity.

For the Partition Card Catalog Location, the card catalog may reside inthe library man area directly succeeding this partition descriptor or itmay be located in within the partition. The defined values are: 0=Nocard catalog included with this partition type, 1=Card catalog directlysucceeds this partition descriptor, 2=Card catalog is in the partition,and 3-255—reserved

The Pointer to Most Recent Partition Card Catalog field allows the HDSto find the card catalog for the partition in question. The meaning ofthe field depends on the card catalog location field as follows: Ifthere is no card catalog, this field=0. If the CC follows the PD, thisis the # of bytes from the start of this PD to the start of the CC. Ifthe CC is in the media, this is a book page address of the most recentCC within the partition.

The Last LBA written in Partition is the last logical block address inthe partition.

The Offset to the Next Partition Descriptor is the number of bytes fromthe beginning of this partition descriptor to the beginning of the nextpartition descriptor. These bytes may not be contiguous due tointervening card catalogs. If this is the last PD, this value is 0.

The Partition Descriptor CRC covers the fun Partition Descriptorstructure. If this fails, it is assumed this copy of the PD is bad.

Example 4

Table 6 shows types of partition recording modes in accordance with oneembodiment of the present invention.

TABLE 6 Recording Modes Code Description 0x80 Sparse, Full Books, SingleSession, Fenced 0x81 Sparse, strong holograms = short books,multi-session, fenced 0x82 Sparse, Full Books, Multi-session, Not Fenced0x83 Sparse, strong holograms = short books, Not Fenced 0x84 1DPolytopic, Full Books, Multi-Session 0x85 2D Polytopic, Full Books,Multi-Session

The recording mode 0x80 is described as sparse, full books, singlesession, and fenced. In Table 6, “Sparse” indicates that there are nooverlapped books. “Full Books” indicates that books are recorded withnormal or maximum page density. Single Session indicates all of thebooks in the partition are recorded in a single session. The partitionis considered finished and closed once the write session is completed.“Fenced” indicates that the session (which in this case is the same as apartition) is surrounded in all directions by unused, cured books. Thesecured books do not include partition data, but are considered part ofthe partition.

Since the data in the 0x80 mode is fenced, 0x80 mode partitions in thefirst row or track must be 3 tracks or rows wide, but do not need to befull tracks. The reason for the 3 row/track minimum is to provide acured book fence around the partition to complete it. Partitions onsubsequent rows/tracks are 2 rows/tracks wide to continue the full databarrier throughout the media. This barrier is used to increase theamount of time the media can be left partially written by increasing thediffusion distance required to begin degrading the user data.

FIG. 7 shows an example layout of partitions written in 0x80 mode. Itshows 2 partitions of different sizes written next to each other. Thecured books form a boundary around the actual data. The cured booklocations contain filler pages, redundant library map information, orincoherent cured location—depending on the curing process selected bythe system doing the writing.

During a 0x80 write session, the data books are written first. The curedbook barrier is written last to complete the partition. For adjoiningpartitions, the cured books between the new session and an older sessionhave already been written and don't need to be cured.

The method of writing a book is determined by the media type being usedas defined in the library map. The media type dictates the pre-cure,post-cure, number of pages per book, and the write schedule. If there isnot enough data to complete a book, extra pages that do not belong to achapter are written per the write schedule to fill the book.

0x80 mode requires the entire partition to be written in 1 session. Ifthere is not enough data to fill all of the books of the partition,books of filler pages that do not belong to any chapters are writtenuntil the partition is completed. Alternatively, the partition may beredefined to end where the bookcase ends and a new, empty partitioncreated to save space.

Recording Mode 0x81 is described as Sparse, Strong Hologram—short books,multi-session, Fenced, No Servo Pattern. “Sparse” indicates nooverlapped books. “Strong Hologram” indicates the books are short booksi.e. fewer holograms are written per book using an extended writeschedule to make them stronger. “Multi-session” indicates the partitionsupports multiple sessions, with each session surrounded by fencing.“Fenced” indicates that the data books written are surrounded in alldirections by unused, cured books. These cured books do not includepartition data, but are considered part of the partition.

The first session in a partition of type 0x81 is a write of at least 9books, if only 1 book is data. The rest of the books are cured books forfencing. Each appended write consists of at least 1 data book and 5additional cured books. This mode may be used for special datastructures and the data for a single session often fits within a singlebook.

FIG. 8 shows an example of a 0x81 type partition which is a robust lowdensity partition mode. In this case, a bookcase is the data book(s)+thesurrounding cured book locations written in each session. The partitionshown has 6 separate bookshelves, each bookshelf being the equivalent ofa write session.

Recording mode 0x82 is described as sparse, full books, multi-session,and not fenced. This is the same as recording mode 0x81, except thereare no extra cured books between sessions. FIG. 9 shows an example of a0x82 type partition.

Recording mode 0x83 is the same as mode 0x82 except fewer pages arewritten as stronger holograms. This increases the robustness of datarecovery for this mode versus mode 0x82.

Recording mode 0x84 is described as 1D Polytopic, full books,multi-session, not fenced. When recording in this mode, the books areoverlapped in the bookshelf direction to increase the recording density.The overlap is defined by the factor N where N=the number of booksrecorded in the space of a single book at full density. In FIG. 10, N=4.This figure shows 3 sessions of books with the books in Track Row 1comprising 1 session, books 1.0, 1.1, and 2.0 comprising a secondsession, and books 3.0, 3.1, 3.2, 4.0, 4.1, and 5.0 comprising the thirdsession.

In mode 0x84, the sessions are finished by curing the total area coveredby the books comprising the session. Some areas may need more cure timethan others if they are not written to full density.

The recording order is very important in this mode. The books must berecorded so that the media is written uniformly. Wherefore, a bookcannot be written until all of the books that it overlays (evenpartially overlays) are written. In the example of FIG. 10, session 2,book 1.1 cannot be written until both books 1.0 and 2.0 are written. Forsession 3, book 3.2 cannot be written until books 3.1 and 4.1 arewritten. Rook 3.1 cannot be written until books 3.0 and 4.0 are written.Etc.

Recording mode 0x85 is described as 2D Polytopic, full books,multi-session, not fenced. This is the 2D version of mode 0x84. In thiscase, the books are overlapped both in the bookshelf direction andbetween bookshelves. The overlap is defined by 2 parameters: N & M whereN is the overlap in the bookshelf direction and M is the overlap acrossbookshelves. N*M=the total number of books recorded in the space of asingle book. In FIG. 11, N=4 and M=2. This figure shows a singlesession. Additional sessions may be written in this mode, but they maynot overlap spatially.

As for mode 0x84, a session is completed by curing the area covered bythe bookcase. The areas that are not written at full density requiremore cure time than the areas that are written at full density.

As for mode 0x84, the recording order is important. The same rules applywhere no book may be written until all books that it overlaps arewritten. In FIG. 11, the books in track 1.1 cannot be written until thebook it overlaps in tracks 1 and 2 are written, respectively.

Example 5

For 1D polytopic multiplexing, the books are recorded in non-overlappedlayers for uniform exposure of the medium. This process is also known asskip sorting. As an example, for the books recorded in FIG. 10, apossible recording order that meets this requirement is shown in Table Aof FIG. 12. The addresses in the table match the books shown in FIG. 10.This is one possible write ordering that meets the requirements ofuniform exposure using 1D polytopic overlap. In this scheme, each trackis written separately. Also, each book is written 1 full book spacingaway from the previous book. There are other schemes, but this scheme isadvantageous in that it builds up to the deepest layering most quicklysince it returns to the beginning of the row or track as soon as a lowerlayer is completed enough for a book to begin the next layer.

For 2D polytopic multiplexing, the same rule applies as far as uniformexposure and layering. An example book write ordering is shown in TableB of FIG. 12 that corresponds to the 2D polytopic recording shown inFIG. 11. This is one possible book write ordering that meets therequirements of uniform exposure using 2D polytopic overlap. Thisexample shows 8 layers. Only 1 book (address 1.1/2.3)_ is in the 8^(th)layer. This recording ordering also forces a full spacing for each newbook write and also returns to the track row start as soon as possibleto begin each new layer as soon as enough of the lower layers have beenrecorded. It is noteworthy that at the start of the bookcase, 4 booksare lost in track row 1.1 because the lower 4 layers built ontracks/rows 1.0 and 2.0 are not all present. If a full track is writtenin a disk format, it is possible to gain those 4 books back when thebooks to the left of books 1.0/1.0 and 2.0/1.0 are filled.

Example 6

Table 7 shows partition data types in accordance with one embodiment ofthe present invention.

TABLE 7 Partition Data Types Code Description 0x80 User Data 0x90 DriveData - Library Map, Media Information, Drive Information, Bad Map,Calibration, Interchange data, . . . 0xA0 Drive Firmware/Mode Parameters0xB0 Spare Books 0xF0 Cured Filler Books - Used to fill out the extrabooks on the media.

User data type 0x80 includes support for user data written in chapterformat. The card catalog for this mode resides at the end of the userdata and is also protected by chapter ECC. Anthology ECC is alsosupported for this type as an option. The Single Session Card Catalogformat is used for user data type 0x80 partitions. FIG. 13 shows asingle-session user data layout for short session 1302 and asingle-session user data layout for a long session 1304. Sessions 1302and 1304 are each made up of a card catalog books 1312, user data books1314, and redundant books 1316.

For data type 0x80, the user data 1314 is written first followed by thecard catalog 1312. As necessary, redundant anthology chapters 1316 areadded during the write. After this write is completed, the session isclosed and no appends are allowed to the partition. The library map isupdated after every write session.

Drive data type 0x90 includes all internal drive information types. Thelibrary map portion of the drive data contains the library mapstructure+partition descriptors. The library map partitions may alsoinclude card catalog and drive emulation tables. Other data that isclassified as drive data include media information, drive information,drive statistics, bad mapping, and interchange/calibration information.The drive data is arranged in well defined structures so that it can bedecoded and listed in any order in a drive data partition.

Each update of drive data structures in a drive data partitionsupercedes previously written structures of the same type. For example,if there are multiple instances of the library map in the partition, thelast library map is the most recent. Drive data may be written in arecording mode supporting multiple sessions in a partition such asrecording mode 0x81.

Drive data is recorded in chapters with ECC protection. The chapterlevel redundancy is selectable based on the number of pages available ina book, the system type, and the format generation.

Drive data is for internal drive operation and is not accessible by thehost except by special command.

Drive Firmware/Mode Parameters Type 0xA0 consists of different type ofmicrocode or downloadable hardware images that may be used to programand operate the drive. Mode parameters may also be downloaded to thedrive from the media. These parameters control the drive's operatingmode and personality. This method may be used to upgrade drives or tocustomize them for specific customers and applications and to customizesecurity features.

With respect to Spare Book Partition Type 0xB0, one or more partitionsmay be allocated to replace bad books that are found to be going badduring reading and may be used in a bad book mapping process.

Example 7

Table 8 shows a definition of a single session card catalog inaccordance with one embodiment of the present invention.

TABLE 8 Single Session Card Catalog Definition Structures Field SizeCard Card Catalog ID 32 bits Catalog Card Catalog Header Length in Bytes8 bits Header Card Catalog Revision 8 bits Partition Number 8 bitsReserved 8 bits Pointer to next CC in Partition 32 bits Card CatalogStarting Book Address 32 bits Card Catalog Last Book Address 32 bits CCStarting Chapter Number 32 bits CC Last Chapter Number 32 bits CCStarting LBA 32 bits CC Last LBA 32 bits Total Number of AnthologyBinding Entries 16 bits Size of Each Anthology Binding Entry 16 bitsTotal Number of TOC Entries in Card Catalog 16 bits Size of each TOCEntry 16 bits CC Header CRC 32 bits Anthology Anthology Binding Header16 bits Binding Total Chapters in Anthology 8 bits Entries Number ofRedundant Chapters 8 bits (1 per Starting Chapter Number 32 bitsAnthology) Table of TOC Header 16 bits Contents Status Byte 8 bitsEntries Reserved 8 bits (1 per book) Physical Book Address 32 bitsNumber of Pages in the Book Written 16 bits Page Address of first FullChapter Start 16 bits Chapter # of First Full Chapter 32 bits First LBAStart in 1^(st) Full Chapter 32 bits Card CRC over entire SSCC structure32 bits Catalog Footer

The Card Catalog ID is a unique pattern to identify the start of a cardcatalog data structure. The Card Catalog ID is not necessarily an SSCCand is encoded in ASCII as “CARD”.

The Card Catalog Header Length in Bytes is the number of bytes in thecard catalog header including the ID and CRC.

Card Catalog Revision is the revision number of this card catalog. ForSSCC, the Revision=0x80.

The Partition Number refers back to the partition number this cardcatalog belongs to. The Partition Number is used as a check when pairingup PD's from the library map and card catalogs.

With respect to the Pointer to Next card catalog in Partition, if thiscard catalog is included in the library map, this is the byte offsetfrom the start of this card catalog to the start of the next. If thiscard catalog is on the media, this is the physical address of the nextcard catalog. If this is the last card catalog in the partition, thisfield is 0.

The Card Catalog Starting Book Address is the first physical bookaddress that has a table of contents entry in this card catalog. Itusually is the first physical address in the partition, but it doesn'thave to be if there is a reason that some of the addresses have beenskipped.

The Card Catalog Last Book Address is the last physical book addressthat has been written belonging to this card catalog.

The Card Catalog Starting Chapter Number is the first chapter numberrecorded in the books described by this card catalog.

The Card Catalog Last Chapter Number is the last chapter written thatbelongs to this card catalog.

The Card Catalog Starting Logical Block Address is the first logicalblock address recorded in the books described by this card catalog.

The Card Catalog Last Logical Block Address is the last logical blockaddress written that belongs to this card catalog.

The Total Number of Anthology Binding Entries is the number of anthologybinding entries that immediately follow the card catalog headerstructure.

The Size of Each anthology binding entry is the number of bytes of eachAB entry.

The Total Number of table of contents Entries is the number of table ofcontents entries that immediately follow the final AB entry. If thereare no anthology binding entries, this follows the card catalog headerstructure.

The Size of Each table of contents entry is the size in bytes of eachtable of contents entry that follows.

The CARD CATALOG Header CRC is the 16 bit CRC of the card catalog headerto check the validity of the contents. This is the same CRC method usedfor the Library map and partition descriptors.

The anthology binding header is the fixed value to indicate the start ofan Anthology Binding entry. Set=“AB”.

The Total Chapters in Anthology is the number of chapters contained inthe anthology including the redundant ones. The final chapter number inthe Anthology can be calculated by adding the starting chapternumber+the total chapters.

The Number of Redundant Chapters is the number of redundant or paritychapters in the anthology.

The Starting Chapter Number is the starting chapter number for thisAnthology.

The table of contents Header is the field to identify the start of atable of contents entry. Set=“TC”.

The TOC Status Byte describes the status and contents of the book asshown in Table 9 below.

TABLE 9 TOC Status Byte: Bit 7-4 3-0 (lsb) Def Book Density Book StatusBook Density: 0 = Full Density for format 1 = Low Density for format 2-3= Reserved Book Status: 0 = Unused/Unexposed 1 = Partially Filled - Data2 = Fully Filled with data - no final cure 3 = Partially filled withdata - Filled out and Cured. 4 = Fully filled with user data and Cured 5= Mapped Out - Bad 6 = Cured Filler Book - No user data 7-15 = Reserved

The Physical Book Address is the address of the book being described bythis entry.

The Number of Pages in the Book is the number of informational pagesrecorded in the book. This includes filler pages that are in a chapterbut does not include filler pages that are not part of a chapter. Thisassumes that the pages always begin recording at page address 0 in thebook. This field is ignored if there is no data in the book.

The Page Address of First Chapter Start in the Book is the page numberwithin the book where the first full chapter starts in the book. This isset=0xFFFF if there are no chapter starts in the book. This field isignored if there is no data in the book.

The Chapter Number of the First Chapter Start in the Book is the firstchapter number that starts in the book. If there are no chapter startsin the book, this field is set=the chapter that is recorded in the book.If there are no chapters in the book, it is set=0xFFFF. This field isignored if there is no data in the book.

The First Logical Block Address Started in the Book is the first logicalblock address in the first user chapter start. It there is no chapterstart in the book or if all chapters in the book are redundant anthologychapters, this field is ignored and set=0xFFFFFFFF. This field isignored if there is no data in the book.

The CRC For SSCC Structure is over the entire Card Catalog including theheader and all table of contents entries. Same CRC polynomial as usedfor the Library Map. The Card Catalog is invalid if the CRC fails.

Example 8

FIG. 14 shows an example of the assembly of a chapter of user dataassembled from host logical blocks. Logical block data is mapped into achapter sequentially until the chapter's user data space is filledexcept for the fixed area for the Chapter Directory. If there is notenough user data to fill a chapter, filler data is inserted to completethe chapter. The chapter directory is then added along with the paritypages. The entire chapter must be completed before it can be written tothe media.

If there isn't enough data to fill a chapter and the current writecommand has completed (all of the write data has been transferred to thedrive), the last unwritten chapter may stay in the buffer for aprogrammable amount of time awaiting another write request. If a flushor other command comes in causing the write buffer to be emptied, thechapter is completed with filler data and written. The amount of timethe drive will wait with write data in the buffer is based on modesettings and media type.

Example 9

A chapter format, Chapter Format 0x80, according to one embodiment ofthe present invention uses Reed Solomon correction. Chapter lengths arevariable and the redundancy is also variable. Chapter format 0x80assumes that it is used with a page format that uses an ECC or outercode with one or more codewords at the page level that provide CRCerasure information. Page Formats 1 and 2, described below, using aTurbo Convolutional Code fit this requirement.

Long chapters are desirable from an overhead standpoint, but longchapters can lead to increased access time in the case when chapterlevel error correction gets invoked, since the entire chapter needs tobe read in to perform correction before any user data is available.

Example 10

FIG. 15 illustrates an example of chapter ECC and the increase incorrection power when using multiple page level codewords with their ownerasure indicators.

In the example of FIG. 15, the chapter length is 12 pages including 4panty pages. Each page is split up into 24 turbo convolutional codewords of user data. The turbo convolutional code decoder provides a CRCat the end of each codeword on the page to provide an indication ofwhether that codeword has an error in it or not. If it was notcorrectable at the page level, the turbo convolutional code CRC failureis used as an erasure pointer. In the example, each red turboconvolutional code codeword is assumed to have an erasure error.

The example of FIG. 15 shows an error pattern through the chapter thatis fully correctable via chapter level ECC even though only 1 page ofthe chapter was correctable at the page level. The reason it is fullycorrectable is that there are never more than 3 (P−1) codewords in errorin each chapter level codeword. Chapter level codewords are builthorizontally across this illustration.

In order to take advantage of the increased chapter correction power viamultiple page level codewords, the chapter format layer requiresknowledge about the number of page level codewords, their size, anderasure results from the current page format.

Example 11

In one embodiment of the present invention, chapter directories have asize that is a multiple of 512 bytes. When a chapter is started, thelast 512 bytes of the chapter are reserved for the chapter directory. Ifthe primary chapter directory is filled, the 512 bytes prior to theprimary chapter directory are allocated. This process continues untilthe user data in the chapter meets the current chapter directory andfills up the chapter. The chapter directory format is shown in Table 10below.

TABLE 10 Chapter Directory Definition Chapter Directory Definition FieldSize CD Header Chapter Directory ID 32 bits CD Header Length in Bytes 8bits CD Revision 8 bits Data Type 8 bits Reserved 8 bits Number of BlockDescriptors 16 bits Number of Bytes Per BD 16 bits Chapter Byte Count 32bits Digital Rights Management 64 bits Pointer to Next CD Field in this32 bits Chapter Chapter Number 32 bits CD Header CRC 16 bits BlockControl Byte 8 bits Descriptor(s) Reserved 24 bits Logical Block Address32 bits Byte Offset into Chapter 32 bits Size of Block 32 bits Number ofBlocks 32 bits CD Footer CD Filler Bytes N Bytes CD CRC 16 bits

There is one chapter directory header per chapter directory block. Thevalues may be duplicated in each chapter directory header except for thePointer to next chapter directory field.

Chapter Directory ID is the Fixed field to indicate that this is achapter directory structure. Set=“CDIR”.

Chapter directory Header Length in Bytes is the number of bytes of thechapter directory Header from the directory ID through the chapterdirectory header CRC.

Chapter directory Revision is the revision of this chapter directorytype which is 0x80.

Data Type is the type of data contained in the chapter. Data types maynot be mixed within a chapter (or a partition). This field is used forthe potential case that real time constraints or security policies areto be applied by the system based on data type. User Data=0

Number of Block Descriptors is the number of valid block descriptorscontained in this chapter directory. This includes block descriptors inadditional chapter directory structures within the chapter, if any. Thiscan—0 if there are no valid logical blocks starting within this chapter.

Number of Bytes per BD is the number of bytes in each block descriptor.

Chapter Byte Count is the byte count of user or “useful” data within thechapter. It doesn't include filler byes used to complete the chapter.

Digital Rights Management is a field that may be used to protect thecontent of this chapter through encryption, or limit access to the databy unauthorized users.

Pointer to Next chapter directory Field in this Chapter is a signedoffset in bytes from the beginning of this chapter directory header tothe beginning of the next chapter directory header. This will often be anegative number (−512) since the chapter directory's grow from the endof the chapter.

Chapter Number is a 32 bit chapter number. The chapter number maycorrespond to the chapter number found in the page header for each pagein the chapter.

Chapter directory Header CRC is 16 bit CRC to protect the chapterdirectory header. This is the same CRC as used for the Library Map andother structures used with this chapter directory.

There may be as many block descriptors within a chapter directorystructure as will fit within the 512 byte boundary. If additional blockdescriptors are needed, a new chapter directory structure is allocatedfor them. The block descriptor is ignored and zero filled for redundantanthology chapters.

Each block descriptor defines the mapping of one or more logical blockswithin the chapter. The block directories may be nested to allow forlogical block mapping into compression blocks in the chapter. Fielddefinitions:

Control Byte defines the boundaries and information type of the logicalblock described by this block descriptor. Field definitions for thecontrol byte are shown in Table 11 below:

TABLE 11 Field Definitions for Control Byte Bit 7 (msb) 6 5 3-0 (lsb)Def Start End In Compr Info Type Start: 1 = Data defined by this blockdescriptor starts in this chapter. End: 1 = Data defined by this blockdescriptor ends in this chapter. In Compr: 1 = Data defined by thisblock descriptor is the logical block address mapping within acompression block. Info Type: 0 = User Data, non real time 1-15 =Reserved for other user data types (May include real time, copyrightprotected, . . . ) 16 = Padding 17 = Filemark 18 = Compression Type 1 19= Compression Type 2 20-31 = Reserved

Logical Block Address is a host defined logical block address. This isthe first LB that starts in the chapter. If no logical blocs start inthe chapter, then it is set to the logical block address of the blockthat is in the chapter. The maximum number of logical block addressessupported is 4 G. This field is ignored if there isn't any user datareferenced by this block descriptor (i.e. padding).

Byte Offset Into Chapter is the start of the logical block beingdescribed from byte 0 of chapter. This field is ignored if the blockdoesn't begin in the current chapter.

Size of Block is the size of the logical block or compression blockbeing described. It may span into the next chapter. For fixed blockmode, this will always be on a 512 byte boundary. For variable blockmode, this can be any value. Maximum block size supported is 4 GB.

Number of Blocks is the number of contiguous blocks of the same size andtype in the chapter. The last block may span into the next chapter.

The chapter directory footer completes the chapter directory structureand is used to align the chapter directory on a 512 byte boundary.

chapter directory Filler Bytes are the filler bytes to fill out the 512byte structure from the last block descriptor to the chapter directoryCRC field. Only full block descriptors are allowed in a chapterdirectory, so if a block descriptor is available, but cannot fit in thisspace, filler bytes are used. These are all set=0.

chapter directory CRC is 16 bit CRC to protect the chapter directorystructure. This may be the same CRC as for the Library Map used with thechapter directory.

When additional chapter directories are required to describe a chapter,the full chapter directory structure+new block descriptors are usedincluding filler to fill out the 512 byte structure.

Example 12

In one embodiment of the present invention, the chapter number fieldresides in the page header. The chapter number field is 32 bits longwith the top 8 bits describing the chapter type and the lower 24 bitsthe chapter count.

The chapter count starts at 0 in the beginning of each non-linkedpartition.

The chapter type field is redundant with card catalog information andmay not be used, but is helpful for recovery if the card catalog,partition descriptor, or the library map is corrupted and unrecoverable.It may also be helpful to the lower level channel it different datatypes are to be treated differently. In general, the logical portion ofthe drive requests data by the lower 24 bit chapter number. The chaptertype field is defined in the Table 12 below.

TABLE 12 Chapter Types Chapter Bit Field Definition Type 31-24 23-1615-8 7-0 User Data 0 Chapter Number (Big Endian) Redundant Anthology 1Chapter Number (Big Endian) Chapter Filler Chapter 2 Unused-set = 0Library Map Chapter 3 Unused = 0 Library Map Counter Card CatalogChapter 4 Chapter Number (Big Endian) Data Chapter without 5 ChapterNumber (Big Endian) CD Reserved 0x6-0x7F Unused - set to any value DataPage Not Part 0x7F Unused - set to any value of a Chapter Invalid0x80-0xFF Upper bit must always be = 0 (Barcode header limitation).

Redundant anthology chapters follow the chapters that they areprotecting. They are numbered sequentially with user chapters. The cardcatalog helps the drive locate and skip these chapters unless they areneeded for recovery.

Filler chapters may be used when curing using data pages or filling outthe data portion of an anthology.

Library Map chapters contain the library map. The counter is incrementedfrom 0 following each library map update on write once media. Thiscounter is used to help determine the most recent library map version.

Reserved chapter numbers are used to indicate pages that aren't part ofa chapter. An example is pages that are parts of multi-page writes usedfor testing purposes that don't include chapter protection.

Example 13

A page format, Page Format 1, of the present invention is based on a1280×768 pixel SLM (A Spatial Light Modulator from the ManufacturerDisplaytech™ This page format designed conservatively with a high coderate and large margins at the edges of the page. The components of thepage format include: page layout, page header, data areas and tiling,ECC code and interleaving, and randomization.

FIG. 16 shows an encoded page for the page format of this example. Theencoded page consists of a 16 pixel border on the top and bottom of theimage and a 64 pixel border on the left and right sides. Alignmentmarks, filename & page address, and the encoded page headers are locatedin the border areas. The data area is made up of 820, 32×32 tiles.

FIG. 17 shows the base “skeleton” image layout. The page starts out withthis image as a background and the filename, book/page number, pageheader, and encoded data is overlaid onto the skeleton image.

The components of the data page format for this example are describedbelow.

Referring to FIG. 17 the alignment marks are shown in the borders of theimage. These alignment marks are used only for visual alignment usingbio-feedback. They are not used by the system for data page alignment orrecovery.

The alignment marks consist of 8×8 squares located at 48,4; 1223,4;48,755; and 1223,755. There are also single pixel vertical andhorizontal lines coming off of the upper right and lower left alignmentmarks. There is also a 10×24 fiducial at 1217,372.

FIG. 16 shows the source filename and book/page address written in an8×8 font in the upper left corner of the image. This data is encoded andadded by the software/firmware when the page is formatted. Again, thisdata is used only for visual information and identification of thehologram. It is not used in the page decoding process. The sourcefilename and path can be up to 32 characters. If the pathname/filenameis longer than that, it is truncated from the left. The book/pageaddress can be up to 999/999. This doesn't limit the actual addresssince it is in the header—it is just the limit of the fields reservedfor this information.

The page header is used for page identification to ensure the physicaladdress of the page matches the drive's version of the physical address.It also indicates the page format type being used and provides theinformation to place the page within the chapter. The page headers arelocated in the border areas of the page.

The page headers are differentially encoded and located in all 4 of thepage margins (see FIG. 16). This header format has been dubbed“barcode”. There are 2 separate barcode fields that are duplicated forredundancy. The top and left headers are the same as are the bottom andright headers.

All of the barcode headers are encoded in the same way. The onlydifference is the definition of the data fields within them.

A barcode header is 512×8 pixels (8 rows tall for horizontal headers and8 columns wide for vertical headers). Each row (column) is redundant toallow the header to be read with extreme misalignment.

Each header begins with an 8 pixel start block. The start block is useto detect the start of the header and for gross alignment of the page.Even numbered pages have a start block of 11110000 and odd numberedpages have a start block of 00001111. These alternate to avoid fixedpatterns on the SLM and to reduce the correlation noise between thesepixels in adjacent pages.

The next 504 pixels of the header is the data field. There are 84 bitsof data encoded as 6 pixels per bit. Each bit is encoded as follows:

-   -   00—spacing from the previous bit/field    -   0011=0    -   1100=1        For odd pages, these bits are all inverted (including the        spacing). This is done for the same reason as inverting the        start block.

The 84 data bits are defined as follows:

-   -   64 encoded bits used for header data    -   16 encoded bits for CRC    -   4 encoded bits set=0 to round out the header to an even 512        pixels

The top barcode header is located at the following coordinates: 416, 4;927, 4; 416, 11; 927, 11. The code is located at: 50, 128; 57, 128; 50,639; 57, 639. The 64 bit information field+CRC in the top/left isformatted as big Endian and defined in Table 13 below:

TABLE 13 Top/Left Header Fields Page Header Field Bits Description PageFormat Code 8 Page Format Version (= 0), The MSB is supposed to be set =0, so only page formats 0-127 are valid. Page within Book/Write angle 16Page Number in book Book Number 16 Book number on media given by mediatype. Randomizer Seed 16 Lower 16 bits of seed consisting of thefollowing subfields: 1^(st) 8 bits are an incrementing image tag (mod256 starting from the first page written since last drive reset) Next 4bits = 0. Last 4 bits = Slibrary map Buffer Number that was used (mod16). Data Type 8 Normal User Data = 0. This field is used by the channelto determine how to treat the data. This can be used to denote real timedata or security features that are implemented at the physical level ofthe holographic storage device. An example is limiting retries orperforming faster, less robust recovery algorithms on real time, lossydata. Header CRC 16 CRC-16 over entire header field Total Header Size 80bits Corresponds to 480 pixels

The bottom barcode header is located at the following coordinates: 416,756; 416, 763; 927, 756; 927, 763. The right barcode is located at:1228, 128; 1235, 128; 1228, 639; 1235, 639.

The 64 bit information field plus 16 bit CRC in the bottom/right barcodeis formatted as big Endian and defined in Table 14 below:

TABLE 14 Bottom/Right Page Header Page Header Field Bits DescriptionChapter Number 32 This field is defined for this chapter, see Table 12of Example 11, for example. The MSB must always be 0. So, in the chaptertype field, only values 0-127 are valid Total Pages in Chapter 8 Maximum= 256 Page Number in Chapter 8 Count starts at 0 Number of Parity Pages8 Parity pages included in this chapter Unused 8 Set = 0 Header CRC 16CRC-16 over entire header field Total Header Size 80 bits Corresponds to480 pixels

The data area consists of 828, 32×32 tiles. The tiles are arranged leftto right, top to bottom starting from tile 0 to 827. There are 36 tilesper row and 23 rows of tiles. The last 8 tiles are unused. The page tilelayout is shown in FIG. 18. Each tile contains an 8×8 reserved blockwith the remainder of the tile filled with data bits. FIG. 19 shows thetile format.

Each reserved block contains a 64 bit pattern consisting of 32 1's and32 0's. The pattern is generated from a random generator and isdifferent for each tile on a page. The right half of the reserved blockis an inverted, flipped, mirror image of the left half as shown in FIG.20.

The random number is generated using the Park and Miller generatorI_(j+1)=16807*I_(j) (mod(2³¹−1)), with a Bays-Durham shuffle, asdescribed by the function ran1( ) in “Numerical Recipes in C”, 2nd. ed.,Press et al., pp 280-290. The shuffle table initialization is primedwith 8 warm-up cycles for each new seed.

The starting seed index for each page is encoded in the lower 4 bits ofeither the page number field, the page format of the present example, orthe seed field, the page format of Example 14 below, in the page headerbarcode. This index is used to access a lookup table for the seed to beused by the random number generator. The random number generator isincremented for each reserved block row and for each tile within a pageand re-seeded for each page. This results in 828 unique reserved blockson a page, with 16 unique reserved block sets that typically repeatevery 16 pages within a hook. The reserved block seeds are shown inTable 15 below.

TABLE 15 Reserved Block Seeds Index Seed 0 12345 1 457123 2 37 3 7894344 3457 5 89734 6 12987 7 67853 8 673 9 87311 10 23 11 89343 12 6477 13873 14 614879 15 1235555

The data portions of the tiles contain data encoded using turboconvolutional code (Turbo Convolutional Code). The code rate is ½ andthe codeword length is 32768 bits. There are 24 codewords on a datapage. There are 16384 bits of user data per turbo convolutional codecodeword. The last 32 bits of the codeword is a CRC to provide erasureindicators to the chapter level.

The codewords are interleaved across the page at the bit level. Bit 0 ofeach codeword correspond to the first 24 bits of row 0 of the first tilein the image. Bit 1 of each codeword then follows for the last 8 bits ofrow 0 of the first tile continuing into the first 16 bits of the nextrow. The reserved block areas are skipped, resulting in a total of 960bits in each tile, 40 bits from each codeword. Each tile is identicallyconstructed, starting at the bit position where the previous tile leftoff. The tiles are created from left-to-right then top-to-bottom acrossthe page.

There are 8 tiles remaining at the end of the image without data sincethere are not enough data bits available to fill out an additionalcodeword. An example of the 8 unused tiles can be seen in the lowerright corner of FIG. 16 as enclosed dashed box 1612.

In order to ensure an approximately 50% distribution of 1's and 0's on apage, the user data are randomized prior to encoding, and subsequentlyde-randomized following decoding.

The randomization de-randomization operations are performed by exclusiveOR-ing the data with the least significant 16 bits of the randomizerdescribed by the polynomial:x³²+x²²+x²¹+x²⁰+x¹⁸+x¹⁷+x¹⁵+x¹³+x¹²+x¹⁰+x⁸+x⁶+x⁴+x¹+x⁰.

The randomizer LFSR is advanced by 16 cycles between each data word onthe page. At the end of each codeword, the generator is advanced by anadditional 32 cycles, effectively skipping the 32 CRC bits, in order topreserve the same randomizer values for CRC and non-CRC protected userdata at the codeword boundaries.

The randomizer is seeded with a starting value which varies for eachpage. The lower 16 bits of the randomizer seed is specified in the pageheader definition. The upper 16 bits are always set 0xFFFF.

Example 14

Another page format, Page Format 2, is identical to page format ofExample 12 in every respect except the following: 1. The lower 4 bits ofthe randomizer seed used to indicate the source SLM buffer are used toselect one of the 16 reserved block pattern pages. Page format 1 usesthe lower 4 bits of the page number instead; and 2. The Page Format codein the top/left page header is set=2 instead of 1 to indicate thischange in the usage of the randomization seed.

Example 15

Curing of a holographic storage medium of the present invention is doneusing a reference beam in a book location. The reference beam is sweptat a given frequency through the full angle range for a specified amountof time. The sweep frequency, angle range, and cure time are defined bythe system type and the media type. Curing can also be done using aseparate light source (like an LED) that is apertured and imaged ontothe media.

Other systems of the present invention may incorporate other curingmethods including, potentially, a separate curing LED. From aformat/operation perspective, this operation is similar in that a bookto be cured is addressed and cured for the amount of time dictated bythe media formulation type field.

Example 16

Table 16 below shows an example of a bad book map tracking structure.

TABLE 16 Bad Book Map Structure Bad Book Map Table Definition StructuresField Size Bad Map Header Bad Map Header Identifier 32 bits Bad MapHeader Length 32 bits Bad Map Table Revision 8 bits Number of Entries 16bits Total number of bytes in the table 32 bits Header CRC 16 bitsPre-write Bad Map Type 8 bits Table Entries (1 per bad Bad PhysicalAddress 32 bits book) Recovered Book Table Type 8 bits Entries (1 perbad book) Bad Physical Address 32 bits Replaced Physical Address 32 bitsBad Map Footer Overall Table CRC 32 bits

The Bad Map Header Identifier identifies the beginning of a bad mapstructure. Set=“BADM”.

The Bad Map Header Length is the number of bytes in the header includingthe ID and the CRC.

The Bad Map Table Revision is the revision of this bad map format.

The Number of Entries is the number of bad map descriptors following theheader.

The Total Number of Bytes in the Table is the total bytes includingheader, descriptors, and footer.

The Header CRC covers a bad map header, similar to what is done for aLibrary Map as described above.

When Type is 0, this indicates a pre-write bad book entry. This entry is40 bits long and just defines the physical address of the bad book. WhenType is 1, this indicates a post-write bad book entry. This entry is 72bits long and defines the physical address of the bad book and thephysical address of the reconstructed book.

The Overall Table CRC is a CRC over the entire bad map structureincluding the header.

Example 17

Format 0 is an example of a format generation for use with a WORMarchival product. This product uses disk media with RFID in thecartridge.

This format supports multiple partitions of different data types anddensities. It also supports multiple write sessions within eachpartition.

The initial media information including media type and parameters iswritten into the RFID at manufacturing time so that the media is notexposed until the initial customer usage. As a part of the formatprocess, the media information is transferred to the media so that theRFID can be used for library map storage.

The media geometry supported is 0x82 disk. The medium formulationsupported is 0x82.

The disk is mapped into 2 major zones that are variable in length. 1zone is for user data and is written at high density. The other zone isreserved for special drive data and is written at low density.

The user data zone begins at book 0, track 0. Track 0 is the outertrack. The data is written in 2D polytopic recording mode (0x85). Theuser data continues being written from the outer track to the innertrack. It may consist of multiple write sessions and multiple partitionsthat may or may not be linked. The data types allowed in this zone areuser data of multiple security levels and drive firmware and mode data.

The drive data zone begins at book 0, track N for an N track disk.Assuming track N has M books, books, 0, and book M/2 are reserved forthe disk's final library map when it is completed. Drive data writing isstarted at book 1, track N. The initial library map is always foundthere. Multiple logical format structures may be found in each bookincluding library maps, partition structures, card catalogs, driveemulation tables, media information structures, drive calibrationstructures, and interchange areas. The drive data zone is written innon-overlapped book mode. The books are written at low density.Initially, this area is split into 2 partitions—one for the primarylibrary map information starting at track N, book 1 and one for theredundant library map information starting at track N, book M/2+1.Additional drive data partitions may be created, if desired. There areno card catalogs for these partitions since they contain driveinformation.

The drive data zone continues to grow around track N and proceed intotrack N−1 and so on until the user data and drive data zones meet. Atthat point, the media is filled and book 0 track N and book M/2/track Nare filled with the final library map information.

The disk capacity is reduced by the number of write sessions, and writeinterchanges since this requires write session completion and additionaldrive data information to be written to the disk.

Book addressing starts at the theta disk index mark for position 0.Books are addressed from 0 to X clockwise on a track with X varying oneach track due to the decreasing circumference. Book addresses arespaced by a full book size which is dictated by the system's referencebeam projection for a full book. For polytopic areas, overlapped booksare addressed as book N.0, N.1, . . . N.OT−1 where position N.0 is thenominal book location and book N.O is the last book location prior tonominal book position N+1.0. OT (Overlap Theta) is defined by the amountof polytopic overlap in the theta direction.

Track addressing is similar to book addressing with tracks numbered 0 toN from the outer track to inner track. The nominal track spacing is thewidth of a book in the radial direction. For polytopic regions, thetracks are addressed as track M.0, M.1, . . . M.OR−1 where M.0 is thenominal track location and M.1-M.OR are the overlapped track positions.OR (Overlap Radial) is defined by the amount of polytopic overlap in theradial direction.

For format 0x00, OT=4 and OR=2.

The formatting process is described next. For a blank disk, the RFIDcontains the media descriptor that is written at the factory. Wheninserted, the drive recognizes this descriptor and determines that ithas a blank disk. When a format operation is requested by the host, themedia descriptor is read out of the RFID and the initial library map iscreated. At this time, 2 partitions are created. These are the primaryand secondary library map partitions located at track N, book1, and thetrack N, book M/2+1, respectively. Next, the media is scanned for badareas and a bad map table is created in the drive.

At this point, the media is formatted, but has not been written to. Allof the data about the media is stored locally in the drive, but themedia still is in a “new” state. It remains this way until the firstdata is written. If the media is ejected or a power failure occurs atthis point, the media reverts to a “new” unwritten state. FIG. 21 showsthe disk after format.

When successfully formatted media is in the drive, write sessions maybegin. The host starts the first write session by creating a partitionof the desired type. This partition will begin at location track 0, book0. When the first write command is received from the host, a writesession is opened, the RFID data is replaced with the initial librarymap, and the user data is written to the media.

The write session may continue until the disk is full. It can include asmany write commands as desired. If the host wishes to close the writesession or if writes are not received for a long time (specified by aprogrammable timer), the write session is closed.

The process for closing a write session that doesn't fill the mediaincludes the following steps. Flush any partial chapters in the bufferto the media. Append any write session related data required including acard catalog and drive emulation tables. These are written as shortchapters. Fill the remainder of the currently open data book with fillerpages. Fully cure the entire area used for the write session. Thisrequires cure operations at the start and end of the physical boundariesof the write session. Mark the session closed and update the library mapto show that the session is closed. Write all of the drive data to thefirst library map partition. This includes the library map, allpartition descriptors, the card catalogs, the media information, driveinformation, and the bad book map. Repeat this write in the secondlibrary map partition. For each of these writes, fill the remainder ofthe book being written and cure it. Write as much of the library map aspossible to the RFID. FIG. 22 shows a disk with a single write sessioncompleted.

Additional write sessions can be appended to the media. Between writesessions, the host has the option of closing the current data partitionand creating a new one. These partitions may contain different types ofdata and may be linked to other partitions. New write sessions alwaysstart at the first open book location following the previously closedwrite session. When starting a new write session, the library map isupdated to show that the active partition is out of sync and written tothe RFID. The closure process for each write session is the same as forthe first write session. The only difference is that if the library mapinformation becomes larger than a book, the bad map is no longer writtento attempt to keep the amount of wasted media down. If enough writesessions are completed to fill track N with library map data, and trackN−1 has not yet been written to, both of the library map partitions areclosed and new ones are opened on track N−1. This time they are openedat book locations 0 and M/2. FIG. 23 shows an example of a full diskcomprising multiple sessions.

The media is filled when the inner track is filled with library mapbooks and the user data extends to inner track—1. It is also filled ifthe user data extends to the inner track and leaves only room for thefinal library map. The disk may also be completed by user request.

When completing the media, the drive ensures that all sessions andpartitions are flushed and completed, the library map is updated, thefinal library map and drive data is written to the disk in the reservedbook areas, and the entire media is fully cured.

The following example details the application of the different levels ofthe format hierarchy to a format generation of the present invention,format generation 0.

The Library Map version 8.0 is used.

The library map includes the following fields having the indicatedvalues: Library Map Length in Bytes is 72-324 and depends on the lengthof the Volume ID. The Library Map Revision is 0x80. It is assumed thatany pre-cure/post-cure requirements on data books is taken care of inthe process of writing the books. Address Pointer to Media Based LibraryMap is the physical address of the current library map on the medium.The Pointer to Redundant Copy of Media Based Library Map is the physicaladdress of the second copy of the current library map on the medium. ThePointer to Previous Media Based Library Map is the physical address ofthe previous library map written to the medium—if any. It is assumedthat any pre-cure/post-cure requirements on data books is taken care ofin the process of writing the books. The Format Generation is 0x82. TheMedia Geonetry Code is 0x82.

Media Formulation Code 0x82 (May support others)

System Type=0x84

The Media Status is 0x0, 0x1, or 0x4 indicating the formatted and securebit fields not supported. The Unsynchronized Partition is supported. TheTime of First Media Write is the Recording time of first session. TheVolume ID is a unique serial number for the data storage medium.

Along with the 3 partitions created during format, the host may chooseto add partitions while writing. The host uses a special command tocreate a new write partition. This can only be done when the lastbookcase of the previous partition is completed. The new partition iscreated and starts immediately after the previous partition. Theprevious partition is marked as full and complete and can no longer bewritten to. Optionally, the host may link the new partition to aprevious partition. By doing this, the partitions appear to becontiguous to the host can make it look like there are 2 or more activepartitions being appended to at once.

Format 0 uses Partition Descriptor type 0x80. The Partition DescriptorLength in Bytes=64. The Partition Start Address Starting Track Bookaddress for partition. This is the lowest numbered book address in thepartition. The Partition End Address is the address of the highestnumbered written book location within the partition. This is a curedbook. The Partition Data Type Code is 0x80 indicating the data type isUser Data, type 0x90 indicating drive data, or 0xF0 i.e. Cured FillerBooks. The Partition Recording Mode is 0x82, 0x83, 0x84, or 0x85. Thepartition may be linked to a previous partition or a subsequentpartition. The secure feature is not supported and is 0. The valid bitis 0 for a partition currently being written and 1 before it is writtenand after the partition is completed, assuming there were no errorsduring the write session. If there was an error during the write sessionthat would have caused the partition or card catalog to be corrupted,this bit is set to 0. In this case, the data in this partition is notreadable in future sessions and cannot be recovered. The valid statusfield values are: Empty (=0), appendable (=2), and Full (4).

Time of first partition write is the time when writing of the first bookof data was written to the media. The Time of last Partition Update isthe time when the final book is cured to complete the partition/writesession.

The Partition Card Catalog Location is 1. The Card Catalog succeeds thePD in the Library Map structure. The card catalog is also appended tothe write session for recovery purposes. If it is needed, the drive willhave to search through the chapters in the partition to find it. ThePointer to Card Catalog is the number of bytes from start of this PD tothe next byte after it—64.

The Starting LBA for this partition is the next logical block addressafter the last one recorded in the previous partition. The StartingChapter Number for Partition is the next chapter number after the lastone recorded in the previous partition. The Offset to the next partitiondescriptor is the number of bytes from the start of this PD to the endof the card catalog that immediately follows this PD.

The Card Catalog is written after each bookcase is completed. The SingleSession Card Catalog format (SSCC=version 0x80) is used. It is appendedto the PD in the Library Map of the drive data partitions as well as tothe end of the data in the partition. There is no card catalog createdif a final partition is created to fill the disk with cured fillerbooks.

With respect to the Card Catalog: The card catalog Header Length inBytes is 24. The Partition Number is the current partition beingdescribed. The card catalog Starting Book Address is the address of thefirst book of the partition. The Total number of anthology bindingentries depends on mode settings. If the anthology is enabled, then thisis dependent on the number of chapters in an anthology and the totalnumber of chapters in the partition data. The Total Number of TOCEntries is number of books in the partition including the cured fencingbooks.

The anthology binding fields self-explanatory based on the modeparameter settings used during the write session. The final anthologymay be shortened if there are not enough data chapters to complete ananthology, but tire number of redundant chapters will be the same forall anthologies.

The TOC fields are: Status Byte, where Allowed Book Density is 0 andAllowed Book Status is 0, 2, and 4. The Number of Pages in the book is 0to the maximum number of paged based on media type. The Page Address ofFirst Chapter Start is 0 to the maximum page address based on media typeor 0xFFFF. The Chapter Number of First Chapter Start is 0 to the maximumchapter number based on media type or 0xFFFF. The First Logical BlockAddress in a Book is the logical block address or 0xFFFFFFFF.

The anthology structure may be used optionally based on mode parameters.The length and redundancy of the anthology is programmable.

The book in the format is defined by the media type, media formulationcode, and system code. There are associated write schedule and pagelocation tables based on the configuration.

The chapter length and redundancy is variable based on mode parameters.It is legal to write chapters with 0 redundancy. Chapter type 0x80including chapter directories is used.

The chapter directory field usage is as described above with thefollowing modifications: the Digital Right Management field is unused.Only fixed logical block sizes are supported. However, the logical blocksizes may change within and across chapters. Compression is notsupported.

The page format used is Page Format 2 of Example 14.

A fixed logical block size of n*512 is supported. The default is 4 kbytes. This can be changed via mode parameter settings. Any file systemsupporting removable, write once media may be used. The file system isembedded within the logical block data.

The load process is as follows: The user (or library) inserts thecartridge into the drive. The drive detects the cartridge presence andloads it onto the spindle, opens the shutter, and into the OMA. The RFIDcontents are read to determine the media state. If it is blank, itreturns that status and waits for a format command. If it is not blank,it reads the library map structure from the RFID to determine the mediatype and state. It moves the media to the home position. Next, itperforms calibration sequences in the areas where the drive informationrecords are located to optimize the drive's ability to read and writethe media. It then reads any additional drive information from the drivedata records that is available.

The unload process is as follows: If there is an open write session, itrejects the unload. If there is no open write session, it ensures thatthe latest library map and drive information have been written to themedia and the RFID as described in the media management section command.It requires a write session flush command prior to unload. Next, itunloads the cartridge, closes the shutter, and ejects it.

Bad Mapping is supported via a scanning algorithm that maps out badareas of the media on a full book basis.

If media is loaded with an unsynchronized partition, the drive will scanthe end of that partition to look for a card catalog. If found, it willupdate the library map allow further operations. If it is not found, itwill attempt to recreate the card catalog based on the data found in thepartition. If it comes to an area that appears unrecorded, it willattempt to reconstruct the card catalog and close off the partialsession including additional curing and buffering. If the recovery isunsuccessful, it will mark the media as full and allow read access toall previous write sessions.

After a book is written, a quick check of the book quality is performed.If it is bad, the book is rewritten at the next location and that booki9s marked bad in the bad map and the card catalog. Also, if a shock orother write error is detected during a page write, the page write isrepeated at the next available address until it is successful. Rewrittenpages may not be at contiguous addresses.

Read ahead caching is supported as a mode parameter. This can be enabledand controlled via the host. The default is “on” with a read ahead of 5chapters.

Example 19

Format 40 is used for ROM media. In this example, the media is in a cardformat. This format supports all of the features supported in format 0x0except that the ROM media is replicated in the factory. Therefore, thereis only a need to reserve 2 book addresses for the drive data records.Also, there is no RFID required for ROM media.

The media has 2 reserved book addresses for drive information at thelower left and upper right corners. These books are written in recordingmode 0x83 (sparse, strong).

The remainder of the media is written in recording mode 0x84 (2Dpolytopic). If the data doesn't fill the disk, filler books may bewritten to use up all the media. However, the filler books are notnecessary since the media is flood cured at the end of the replicationoperation.

Addressing of the media is in rows and columns using x,y coordinatesdenoting full book locations. See FIG. 24 for an example of a fullyfilled ROM in card format. There are redundant disk information booksused for locating data on the media.

Format 40 uses library map format 0x80. It is used the same as forformat generation 0.0 except: that the Pointer to Previous Media BasedLibrary Map=0xFFFFFFFF, the Media Geometry Code=0x40, the MediaFormulation Code=0x81, the System Type 0x40, and the Media Status=0x8F(the secure field may be supported. Always full and formatted). Theunsynchronized partition field is not used since ROM never has anunsynchronized partition.

Format 40 uses partition descriptor 0x80. It is used the same as forformat generation 0.0 except: For partition status, the linked bit isvalid, the Secure bit is not used and the rest of this field is alwaysset=0x0F=full.

The card catalog is used the same as for format 40.

The anthology structure may be used optionally based on mode parameters.The length and redundancy of the anthology is programmable.

Drive emulation is optionally supported in this format. If the driveemulation type requires a drive emulation table, it is stored at the endof the last CC in the library map. There is only 1 copy of the driveemulation table per library map.

The load process is as follows: The user inserts cartridge in the drive,the drive detects the cartridge presence, the drive homes the media.Next, the drive performs calibration sequences in the areas where thedrive information records are located to optimize the drive's ability toread and write the media. It then reads all of the drive informationfrom the drive data records that is available. It is now ready to read.

For the unload process, the cartridge may be ejected or removed at anytime. The drive will detect a cartridge removal and appropriately errorout any commands that are in process.

For ROM media, multiple sessions and partitions are supported logically.However, since ROM media is replicated, multiple write sessions are notphysically performed.

Example 20

Format 60 supports a rewritable product example. This product uses diskmedia that has an RFID memory tag in the cartridge. This format isimplemented very similarly to format 0.0 until the disk is filled orfinished. When the disk is to be reused, the entire disk is logicallyerased and the library map is cleared. The library map keeps a count ofthe number of erase cycles that the media has been through and alsokeeps track of the maximum number of cycles allowed. When the limit isreached, the media is finished for the final time and no more erasecycles are allowed.

Erasure may be done in bulk during an erase command or it may be doneincrementally as new media is required for new write sessions in asubsequent usage of the media.

As for 0.0, this format supports multiple partitions of different datatypes and densities. The initial media information including media typeand parameters is written into the RFID at manufacturing time so thatthe media is not exposed until the initial customer usage. As a part ofthe format process, the media information is transferred to the media sothat the RFID can be used for library map storage.

Media management including recording order and library map recording isdone the same way as for format 0.0. Additionally, the load/unload,write processes, write sessions, and partitions are all handled the sameas for format 0.0.

All documents, patents, journal articles and other materials cited inthe present application are hereby incorporated by reference.

Although the present invention has been fully described in conjunctionwith several embodiments thereof with reference to the accompanyingdrawings, it is to be understood that various changes and modificationsmay be apparent to those skilled in the art. Such changes andmodifications are to be understood as included within the scope of thepresent invention as defined by the appended claims, unless they departtherefrom.

1. A method for storing data comprising the following steps: (a)providing data stored as data pages on a holographic storage medium; and(b) recovering one or more of the data pages when one or more of thedata pages is corrupted or missing, wherein the plurality of data pagesare organized into one or more chapters, wherein the one or morechapters comprise a plurality of chapters arranged in an anthology, andwherein each data page of the plurality of data pages includes: a pageheader providing a physical address for the data page and a position ofthe data page within a chapter of the one or more chapters; and pageuser data comprising the holographic data; and page level errorcorrection codes for allowing the data page to be recovered orreconstructed when the data page includes errors wherein the anthologyincludes: a plurality of redundant chapters for allowing one or more ofthe plurality of chapters to be recovered or reconstructed when theanthology includes errors, and wherein step (b) comprises recovering oneor more of the plurality of chapters using one or more of the redundantchapters.
 2. The method of claim 1, wherein step (b) comprisesrecovering one or more of the data pages using one of the page levelerror correction codes.
 3. The method of claim 1, wherein step (b)comprises recovering one or more of the data pages using an errorcorrection code based on a forward error correction code technique. 4.The method of claim 3, wherein the forward error correction code isbased on a Reed-Solomon code, a Low Density Parity Check code, or aTurbo Convolutional code.
 5. The method of claim 1, wherein step (b)comprises using redundant pages of one chapter of the one or morechapters to recover one or more unrecoverable data pages of the onechapter.
 6. The method of claim 1, wherein the error correction codescomprise modulation codes.
 7. The method of claim 1, wherein the errorcorrection codes comprise write and read equalization codes.
 8. Themethod of claim 1, wherein the error correction codes comprise feedbackcompensation.
 9. The method of claim 1, wherein the error correctioncodes comprise predictive alignment compensation.
 10. The method ofclaim 1, wherein the error correction codes comprise exposurecompensation.
 11. The method of claim 1, wherein one or more of the oneor more chapters each span more than one book of pages.
 12. The methodof claim 1, wherein one or more of the chapters each span more than onebook of pages.